IE6でセキュリティ警告が出る場合の対策

2011.02.02 Author: Jas

IE6でセキュリティ警告が出る原因はあると思いますが、
今まで遭遇した問題と対策方法を紹介したいと思います。

1. httpとhttpsのコンテンツが混ざっている
基本中の基本ですが、これはIE6でなくてもセキュリティ警告が出るパターンです。
SSL接続の場合に画像やCSS、JSのパスなどをhttp://~で書かないようにしましょう。

2. frameやiframeのsrcが指定されていない
マイクロソフトのサポートにも掲載されていますが、frameやiframeのsrcが指定されていない場合にもセキュリティ警告が表示されます。

対策は本家に掲載されている通り、srcにダミーページを指定すると回避できます。

<iframe id="iframe_id" src="/dummy.html"></iframe>


さぁ、ここまではよくあるパターンですが、まだまだあります・・・

3. 背景画像を参照している DIV 要素を削除するとなぜか警告が!
この問題もマイクロソフトのサポートに掲載されているのですが、IE6,7で発生する問題(らしい)です。
サポートに掲載の回避策の通り、方法1または方法2で対処してみてください。

ちなみに私が遭遇したパターンでは、方法2のようにCSSで背景画像を指定していた場合でも警告メッセージが表示されました。
どうしようもなくて、背景画像の使用をあきらめたら警告が消えてくれました。
(問題の根本的な解決になっていないのですが…)

4. jQuery + IE6 + SSL (+ iframe?) でセキュリティ警告!?
このパターンについては、マイクロソフトにも情報が見つからず、問題個所の特定に時間がかかりましたが、

$('#iframe').show();

このような記述をしているところでセキュリティ警告が出ていました。

IE6の問題なのかはわからないですが、CSSの「display:block;」がかかるのが嫌なようです。
「display:block;」が付かなければよいので、非表示用のCSSクラスをあらかじめiframeに仕込んでおき、
iframe表示時はremoveClass()で非表示用のCSSクラスを取り除いてあげれば、セキュリティ警告はでなくなりました。

っと、今回は4パターンの問題を紹介しましたが、最後のは挙動が意味不明です。
JavaScriptで画面制御する場合に問題がてんこ盛りなので、早くIE6には消えてほしいものですね。

名古屋のWebシステム開発・ネットワーク構築会社 コネクティボへ