スポンサー広告 - スポンサーサイト

--/--/-- (--) --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【プログラミング】その他 - IEのバグ 其の弐

2013/02/11 (月) 21:06

最近、仕事で遭遇したIEのバグをメモ。

シチュエーションとしては、親ウィンドウから子ウィンドウを生成。
生成方法は、JavaScriptの【window.open()】です。
この子ウィンドウは印刷プレビュー的な物で、親ウィンドウの内容を小奇麗に纏めた物を表示し、印刷させるために使っていました。
印刷が終われば不要なので、画面には[閉じる]ボタンが設置されており、【window.close()】が仕込まれています。
※印刷には専用のCSSが設定されており、このボタンは印刷されません。
擬似的な印刷プレビューではありますが、ブラウザのメニューから本物の印刷プレビューを呼び出すことも可能です。
で、この本物の印刷プレビューを呼び出し、ひとしきり印刷結果のイメージを確認したらウィンドウ右上の×ボタンで閉じます。
この状態で子ウィンドウ上の[閉じる]ボタンを押下しても、子ウィンドウが閉じません。

状況を元にGoogle先生に調査依頼を行いました。
すると製造元からこんな情報が提供されていました。
Internet Explorer で印刷プレビューを終了すると、Web ページ中の Jscript の window.close メソッドが動作しなくなる場合があります

いやー。何ともバグらしいバグですねぇ。
JavaScript全てが利かなくなるわけではなく、【window.close()】のみというのがいかにもですね。
印刷プレビューの閉じ方にはルールがあるようです。
対象はIE6~8で、結構広いですね。
印刷プレビューの画面自体がIEのバージョンによって異なっており、発生条件が少々異なるようです。
つーか、IE6の印刷プレビューには[閉じる]ボタンがあり、それを使う分には問題ないようです。
こんな分かりやすボタンがなんでIE7、8で撤去されたのかは謎ですが。
今回のシチュエーションでは親と子でウィンドウが分かれていましたが、別に子ウィンドウは関係ない事象ですね。
とはいえ、【window.close()】を使うのは子ウィンドウであることが多いと思いますが。
結局、プログラミングで回避する事が不可能だってんだから、困ったものです。

まだまだ未知の不具合が隠されていそうな感じですね。
IE…恐ろしい子!
関連記事

コメントの投稿

非公開コメント

検索フォーム
RSSリンクの表示
カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
月別アーカイブ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。