3

使用 javascript,我可以按如下方式打开和关闭弹出窗口。

var myWindow = window.open('http://example.org/');
// do things to window.
myWindow.close();

在关闭弹出窗口之前,如何在弹出窗口中操作页面的 DOM 元素?我试过了

myWindow.onready = function() {
    myWindow.document.getElementById('someElementID').style.color = '#f00';
}

无济于事。

4

2 回答 2

3

没有事件让您知道 URL 已在弹出窗口中正确加载。唯一可行的选择是设置超时然后访问元素。

像这样:

var myWindow = window.open('./t6.html');  

setTimeout(check, 3000);

console.log($('body', myWindow.document)); // This shows a blank "body"

function check() {
    console.log($('body', myWindow.document)); // This shows the actual elements in the document
}

myWindow.close();
于 2013-01-08T04:16:09.673 回答
1

这是一个小提琴,它演示了它在没有准备好的处理程序的情况下工作。

var myWindow = window.open('http://example.org/');
alert(myWindow)
// Alerts an HTMLDocument object

就像评论中提到的@jfriend00 一样,没有针对Window 对象的现成事件处理程序。

于 2013-01-08T04:12:47.117 回答