2012-01-09 110 views
0

假設我用打開一個新窗口:Window.open和修改DOM

newWindow = window.open(newUrl) 
var ul = newWindow.document.getElementsByTagName("ul")[0]; 
ul.innerHTML = "new content"; 

然而,這並沒有改變新的窗口,在所有的DOM ..

有一種做我想做的事情的方式?這是修改通過window.open打開的新窗口的DOM?

請注意,最後2行工作,如果我把它放在打開的頁面的JS,所以沒有什麼錯我的DOM操作代碼。

回答

4

假設您打開的新窗口屬於與開啓者相同的域,這是可能的。如果不是,您因違反same origin policy而無法修改其DOM。

+0

是的,它是相同的域名。 – 2012-01-09 21:14:17

0

一旦打開窗口,DOM將不會立即加載。您必須調用該方法才能在加載子窗口後更改innerHTML。或者,您只需使用setTimeout即可延遲DOM訪問。