トップ ソフト 雑記 日記 リンク

2007年11月16日金曜日

window.jsがWindow.destroy()で「null」ページを要求する

DQMJクリアしました。
おもしろかった。

技術系メモ。
window.jsを使おうとしているのですが、なぜかウィンドウの操作をしていると、存在しないページが要求されてしまう。

問題箇所を突き止めてみたところ、Window.destroy()を行ったときにその現象が発生しているっぽい。
しかもIEだけで、Firefoxでは発生しなかった。Opera?さぁ?試してない。
ソースを追っかけていくと、
destroy()のなかでやってる
if (this.options.url) this.content.src = null;
が原因のようだ。
どうせもう用済みなんだから、わざわざ設定しなくてもいいやん。
とコメントアウトしてみたら、今度はFirefoxでdestroy()したときに処理は終わっているんだけど「読み込み中」のままになってしまう。

結局、その処理の直後にIE用で分岐している処理があったから、その判定処理を引っ張ってきて
if((!this.iefix) && (this.options.url)) this.content.src = null;
で、解決。

これ、もしnullってページが存在したらハマルんだろうなぁ。
検索してみたけど、だれも問題にしてないのな。
ウェブサーバのアクセスログとか誰も見てないのかな。

(追記)
この修正方法だけでは問題あり。
子ウィンドウにフォームがある場合、IEでは入力が出来なくなってしまう。一度画面を遷移すると大丈夫。
うーん、またIEか。
結局、子ウィンドウのonloadイベントで、任意の入力欄へフォーカスをセットしておくと大丈夫っぽい。

0 件のコメント:

コメントを投稿

広告