javascript - 是否可以从父窗口绑定(bind)到子窗口上的事件?

标签 javascript dom asp.net-web-api

是否可以将函数绑定(bind)到子窗口上的事件?

document.getElementById('foo').onclick = function() {
    var newWindow= window.open('other.html', "_blank");
    newWindow.document.addEventListener("onreadystatechange", function(){
      console.log('foo'); // This is never run. Can I construct the new window so that it is run "onreadystatechange"?
    });

    return false;   
};

请注意,我想将一个事件绑定(bind)到onreadystatechange。我希望避免竞争条件,我可以创建一个窗口,绑定(bind)事件,然后加载 URL 以避免竞争条件吗?

最佳答案

.addEventListener("onreadystatechange", ...)

事件属性以“on”开头。另一方面,事件名称则不然。 IE。应该是

.addEventListener("readystatechange", ...)

I have not tried avoiding the race condition because I know of no way to do so.

好吧,我不完全确定事件和辅助浏览上下文初始化如何与 window.open() 一起工作,那里的规范相当复杂。 我只是尝试设置 DOM 事件断点(chrome 调试器有这些断点)并查看以何种顺序触发哪些事件,然后检查这是否适用于其他浏览器。

也就是说,我认为这里最简单的选择可能是读取 document.readyState 属性。如果它是“完成”,则站点已经完全加载,并且不会触发进一步的状态更改事件,您可以直接执行脚本,而不必等待事件。

关于javascript - 是否可以从父窗口绑定(bind)到子窗口上的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28542345/

相关文章:

dom - Google Chrome 扩展程序 - 访问 DOM

c# - 如何通过 REST API .net 以二进制形式返回图像(不是 url)

JavaScript ES6 : unable to change value of button with ajax (with the rest of the js code working fine)

javascript - 如何更改对象中特定值的字体颜色?

javascript - NextJS React - WebpackError : window is not defined 错误

asp.net-mvc - 如何测试 ASP.NET MVC 项目

angularjs - 在输入元素中使用 angularjs 过滤器

javascript - 按键事件不会用 $().load ("page.html") jQuery 激活

javascript - 如何防止在 html 日期输入中选择多个日期?

c# - 为什么 element.getAttribute ("style") 忽略冒号 ":"字符之后的所有内容?仅返回部分值