与辅助窗口交互克隆DOM

时间:2014-02-06 15:00:17

标签: javascript dom

我有一些代码可以打开这样的辅助窗口:

var win2 = window.open('second.html', 'secondary', 'width=1024, height=576');

然后我需要在dom中添加元素,所以我最初尝试了一些简单的事情:

var canvas = win2.document.createElement('canvas');
win2.document.appendChild(canvas);

但无论我尝试什么,窗口都不会改变。 我还尝试过其他修改,例如更改某些div或其他内容。

奇怪的是,如果我做console.log(win2.document);,我可以在控制台中看到我的修改就在那里。就像它创建了一个没有反映在实际页面中的dom的克隆。

有没有办法修改我的第二个窗口的dom呢?

PS:我是同一个起源,所以这不应该是同源政策问题,虽然我在localhost工作,是否有例外?

1 个答案:

答案 0 :(得分:0)

好吧没关系,所以我读到了在访问它之前你应该等待它加载的事实。

我添加了setTimeout 30毫秒来测试,但它没有工作,所以我认为这不是问题。

我实际上需要更长的超时,然后才能工作。

所以,为了更正确的代码(而不是超时)

win2.addEventListener('load', function () {
    callback();
});

但是,如果您重新加载父页面,事件似乎不会被触发。我还没有解决方案。