とある入力フォームを作った時の話ですが、送信ボタンを押しても一向に送信されず、原因をあれこれ探っていくと、Chromeのエラーコンソールに何やら出力されていました。 An invalid form control with name='foobar' is not focusable. そして、この問題になったフォームオブジェクトは<div style='display:none'>の中、つまりユーザーからは知覚も操作も不能な場所に置かれていて、そしてHTML5のバリデーション属性がかかっていました。 対策法 もちろん最初からこんなフォームを作ることはないとは思いますが、JavaScriptで制御しているとこのように「見えないコントロールがinvalidとなる」ということは発生してしまいます。対策法を検討してみる過程で、いろいろなものがありました。 novalidate、formnoval
UPDATED@2015-10-01 この現象は、Microsoft Edge では修正済みとのことです。素晴らしい。 https://connect.microsoft.com/IE/Feedback/Details/1850614 TL;DR IE で window.open する時に、fullscreen オプションは絶対に指定してはいけません。何があっても! 経緯 業務アプリで、IE 限定な環境下だと、アドレスバーを出したくないというニーズがあったりします。ブラウザなんだけどアプリっぽく見せて、ユーザーにへんなことさせたくない、とかですね。 イマドキのいけてる環境だったら、Electron 使ってブイブイ言わせるのでしょうが、そうじゃない場合には、まあ、IE で頑張るしかない。 その過程で妙な現象に遭遇して、多大な時間を浪費してしまったので、メモっときます。 消しても消しても出てく
window.showModalDialogを使って、別windowでポップアップさせようとした場合、 Loadがうまく走ったり、走らなかったり謎の現象が起きていました。 原因は、IE8ではwindow.showModalDialogがどうもキャッシュから情報を拾おうとしているため、のようです。(IE8以外は対象外なのでどうなるか調べてません。) 「のようです。」というのはマニュアル等には書いてなくてそうなったというだけなんです。解決策は 1. 起動時に(ランダムに)URL引数を付与してキャッシュされないようにする。 2. 以下のメタタグを記述する。 <meta http-equiv="Expires" content="-1"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Pragma" c
ここでは、「windows.showModalDialogは画面をキャッシュする」 に関する記事を紹介しています。 JavaScript のwindows.showModalDialog を使うと 画面がキャッシュされて、初回表示時の画面になってしまう。 ASP.NETを使おうがJSFを使おうがこの現象は起きる。 対策案1:ダミーパラメータ(時刻とな)を付けて呼び出す。 var dummy = new Date().getTime(); windows.showModalDialog("hoge.html?dummy=" + dummy,~~) #URLが前回と異なるとキャッシュが使われないことを利用して 対策案2:キャシュさせない設定にする。 head部に <meta http-equiv="Expires" content="-1"> <meta http-equiv="Cache-C
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く