画面一杯の高さでヘッダー・フッター固定のテーブルを作る【CSS Grid】
Webアプリを開発していると、画面いっぱいまで高さを広げたヘッダー/フッター固定のテーブルを作りたいことが結構あります。いままではJavascriptで高さを設定してたりしましたが、tableタグを捨てればCSSグリッドで簡単に実現することができます。
画面一杯の高さでヘッダー・フッター固定のテーブルを作る【CSS Grid】 Read More »
Webアプリを開発していると、画面いっぱいまで高さを広げたヘッダー/フッター固定のテーブルを作りたいことが結構あります。いままではJavascriptで高さを設定してたりしましたが、tableタグを捨てればCSSグリッドで簡単に実現することができます。
画面一杯の高さでヘッダー・フッター固定のテーブルを作る【CSS Grid】 Read More »
※なお、htmlファイルをローカルに置いて実行した場合だと、上手くいかないようです。。
フォームの作成の仕方にコツがあります。以下のようにtarget=”dummy”にしておくこと(”dummy”は任意の文字列)。こうしておくと、submitボタンを押した時に新しいウインドウが開きます。
... <form action="/dummy" name="new_post" data-real-url="/posts" method="post" target="dummy"> ...
actionにはダミーのパス/dummyを指定しています。data-real-urlには本当にPOSTしたいURLを指定します。ダミーパス/dummyには空白のHTMLページを用意しておきます。
さて、この状態でsubmitボタンを押すと・・・
という状態になるはずです。
先程新しいウインドウで開くようにしたdummyページにJavascriptを仕込んでおきます。だいたい以下のような感じ。(要jquery)
$form = $(window.opener.new_post); $form.removeAttr("target"); $form.removeAttr("action"); $form.attr("action", $form.data("realUrl")); $form.submit();
window.openerにてフォーム画面が取得できるので、こいつでformからtarget要素を取り除き、data-real-urlのパスをactionのパスに置き換えます。その後submitをかけるというわけです。なんとも強引だぜ。
遷移先画面(submit後の画面)から先程新しく開いたdummyページを取得します。window名が”dummy”で開かれているので、Javascriptで取得することができます。
var win = open("", "dummy"); // あとは煮るなる焼くなり・・・ win.close(); // 閉じたり win.location = "/report"; // 他のURLに遷移させたり
以上。変な広告とか表示させないように正しく利用しましょう。
ポップアップブロックを回避してsubmitと同時に新しいウィンドウを開く Read More »