« スクリプトからWin32APIをCALLして、ウィンドウを最前面に表示する。 | トップページ | WSHの引数で二重引用符 " をエスケープするには? »

2007年3月 1日 (木)

document.write()のセキュリティゾーン

about:blankを開くと、インターネットゾーンです。
そこにdocument.write()すると、どこになるでしょうか?
インターネットゾーンでしょうか?

いえいえ、document.write()した人のlocationとセキュリティゾーンになります。

例えば、WSHからdocument.write()すると、インターネットゾーンになります。

ローカルのHTMLファイルやHTAファイルからdocument.write()すると、
マイコンピュータゾーンになります。

この場合、スクリプトなどを書き込むと、
マイコンピュータゾーンのロックダウンが掛かります。

それを避けるには、document.write()などを使わないで、
元のページ内容をDOMで動的に変更するとよいでしょう。
innerHTML=
outerHTML=
insertAdjacentHTML
など

ただし、セキュリティレベルが高い場合は、オブジェクトやスクリプトを
組み込むことは出来ません。

その場合は自分側のオブジェクトやスクリプトを接続して使うとよいでしょう。
Set 相手先variable=自分側オブジェクト
Set 相手先id.onevent=GetRef("自分側proc")

« スクリプトからWin32APIをCALLして、ウィンドウを最前面に表示する。 | トップページ | WSHの引数で二重引用符 " をエスケープするには? »