HTTPSとIFRAME

HTTPS上のアプリ上で、HTML中は勿論、関係するJavaScriptにも"http://"の文字はないんだけど、なぜかIEだけ「 このページにはセキュリティで保護されている項目と保護されていない項目が含まれています」というメッセージが出てしまう。えらい調べまわった挙句、結局自分の作ったものが原因だと判明。

先ほどのBEAのドキュメントを元にやってみた。あら本当に簡単。DIVとIFRAMEの親子関係とか関係なく、ただabsoluteなpositionのIFRAMEをDIVと同じ範囲に、一つ小さいzIndexで表示してやるだけなのね。なるほど。

IEの特殊な仕様をフォローするために、position=absoluteのDIVをSELECTとかより前に表示する仕組みを作ったんだけど、これに使用しているIFRAMEがどういうわけだかsrcが指定されていないと、HTTPとHTTPSが混在しているとIEは判断しやがるらしい。仕方がないのでIFRAMEのsrcにダミーのHTMLを指定してみたら問題解消しました。