我一直在寻找对我的问题的答案 - 迄今为止没有运气。为什么窗户只打开一次`onload`事件?
这里是我的代码:
var oNewWindow = window.open(sLink,'_blank');
oNewWindow.addEventListener('load',function() { alert('Page loaded'); }, false);
当弹出窗口/选项卡中打开的处理程序被调用,但如果我浏览弹出窗口里面,处理程序不会被调用。为什么?有没有办法让它工作?
基本思想是用户打开一个弹出窗口,然后在弹出窗口中开始浏览,而父窗口中的代码继续工作并监视弹出窗口中发生了什么。弹出页面是同一个域上的页面。
第一次加载弹出窗口后,我附加了一个onunload
处理程序,它会在父窗口中调用处理程序,然后启动计时器。然后,父窗口的脚本将与弹出窗口的内容一起工作。但是,如果计时器耗尽且弹出窗口内的旧页面仍然存在,我得到不正确的数据,并且整个脚本停止,问题就会出现滞后。之后我无法附加另一个onunload
处理程序。
onload
处理程序是为整个窗口设置的,而不是窗口内的文档,那么为什么不是处理程序调用?
另外,我的脚本是在GreaseMonkey的帮助下运行的。因为我只使用Firefox,所以我不需要跨浏览器。
非常好的方法。加载包含iframe的弹出窗口。然后从父脚本访问iframe并将'onload'事件附加到它,然后'iframe.src = link'。父脚本具有iframe的句柄,因此可以分析内容。 – user1651105 2011-05-11 17:15:10