Window.open并修改新窗口的DOM

时间:2012-01-09 21:05:22

标签: javascript

假设我使用以下方法打开一个新窗口:

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

但是,这根本不会修改新窗口的DOM ..

有办法做我想做的事吗?这是修改通过window.open打开的新窗口的DOM?

请注意,如果我将它放在打开页面的js中,那么最后两行是有效的,所以我的DOM操作代码没有任何问题。

2 个答案:

答案 0 :(得分:4)

可以假设您打开的新窗口与开启者属于同一个域。如果不是,您出于安全原因无法修改其DOM,因为您违反了same origin policy

答案 1 :(得分:0)

打开窗口后,不会立即加载DOM。您必须在加载子窗口后调用方法来更改innerHTML。或者只是您可以使用setTimeout来延迟DOM访问。