setDocument

setDocument

[1] d:id:quaa (2007-07-24 01:31:19 +09:00 版) <http://d.hatena.ne.jp/quaa/20070722#p2> (名無しさん 2007-07-27 14:15:33 +00:00)

[2] 2007-11-11 - d:id:quaa (2007-12-15 11:45:44 +09:00 版) <http://d.hatena.ne.jp/quaa/20071111#p1> (名無しさん)

[3] window特性 (JavaScriptGlobal変数) や location は変化しないみたいです。

テスト: <http://suika.fam.cx/~wakaba/-temp/test/dom/window/doc/set-document-1.html>

(名無しさん)

[4] 第1引数が Document でないと引数が違うというエラーになります。 (名無しさん)

[5] iframeレンダリングされている Document引数に指定すると、エラーも出ませんが、何も起こりません。

テスト: <http://suika.fam.cx/~wakaba/-temp/test/dom/window/doc/set-document-frame-1.html>

(名無しさん)

[6] その Windowdocument 自体を引数に指定すると、再レンダリングが発生するようです。

HTML構文解析はしないので、当然スクリプトは実行されませんし、 DOM 上の変更も保持されます。 フォーム制御子の中身やスクロールの状態も保存されますが、 iframe は再読み込みされ、スクロールの状態は初期化されます。
テスト: <http://suika.fam.cx/~wakaba/-temp/test/dom/window/doc/set-document-self-1.html>

(名無しさん)

[7] >>3>>6 onload は呼ばれないみたいです。。。 (名無しさん)

[8] setDocument される前の元々の DocumentdefaultViewnull になるようです。 (名無しさん)

[9] >>3-8 は Opera 9 での結果です。 (名無しさん)

[10] どうやら、同じ頁内で作られた Document でないと、黙って無視されるようです。例えば、 XMLHttpRequestDOMParser で作った Documentiframe 内の WindowsetDocument しようとしても、 (明らかに same-origin でも) 無視されるようです。 (名無しさん)