首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

window.open在chrome和safari上附加onload事件时无法正常工作

在 Chrome 和 Safari 上,window.open 方法在附加 onload 事件时可能会遇到问题。这是因为这两个浏览器对于 window.open 方法的实现和处理方式有所不同。

为了解决这个问题,您可以尝试使用以下方法:

  1. 使用 window.addEventListener 方法来监听 load 事件,而不是直接在 window.open 方法中附加 onload 事件。
代码语言:javascript
复制
const newWindow = window.open('https://example.com');
newWindow.addEventListener('load', () => {
  console.log('Window loaded');
});
  1. 如果您需要在新窗口中执行某些操作,可以在新窗口中使用 window.opener 属性来访问父窗口,并在父窗口中执行相应的操作。
代码语言:javascript
复制
const newWindow = window.open('https://example.com');
newWindow.opener.postMessage('Window loaded', '*');

在上面的示例中,我们使用 window.opener.postMessage 方法向父窗口发送消息,以通知它新窗口已经加载完成。

需要注意的是,由于浏览器的安全策略,window.opener 属性可能会被禁用,因此在使用 window.opener 属性之前,请确保它可用。

总之,window.open 方法在 Chrome 和 Safari 上附加 onload 事件时可能会遇到问题,但可以通过使用 window.addEventListener 方法和 window.opener 属性来解决这些问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的结果

领券