gpt4 book ai didi

javascript - 浏览器内 javascript : under what circumstances does window. 打开返回 null/未定义?

转载 作者:行者123 更新时间:2023-11-30 13:31:35 24 4
gpt4 key购买 nike

我的 Web 应用程序的异常处理代码有时会报告 window.open 返回 null 或未定义。这种情况是偶发的,我发现大多数情况下,Firefox 4.0.1 和 5.0 都会出现这种情况,而 Chrome 也会出现较小程度的情况。

何时以及为什么会发生与特定浏览器相关的情况?

我听说 IE8 和 IE9 在保护模式下工作时可以做到这一点。真的吗?那么火狐浏览器呢?歌剧? Chrome ? Safari?

重要说明:

  1. 直接调用window.open在 onclick 事件中(不是推迟,因为这会导致大多数要显示的浏览器弹出窗口阻止程序警报)。
  2. window.open 打开一个空白窗口那么其 HTML 内容是通过 JavaScript 进行操作
  3. 请不要回复告诉我“为什么你使用window.open吗?为什么不相反,做(这里的其他任何事情)”,因为这会偏离主题。

最佳答案

我将尝试用我所收集到的信息来回答我自己的问题。一旦发现更多,我会立即更新。

火狐浏览器:

Firefox 中嵌入的弹出窗口阻止程序会自动阻止对 window.open 的所有异步调用,其效果是 window.open 返回 null/undefined。

为了避免这种情况,window.open 调用必须是同步的,并且直接源自显式用户操作(例如鼠标单击)。

如果您需要根据异步事件(例如:XMLHttpRequest)中的数据修改打开的窗口,您可以同步打开一个空窗口,缓存返回的窗口对象,然后更新它。

此“黑客”适用于所有浏览器。

关于javascript - 浏览器内 javascript : under what circumstances does window. 打开返回 null/未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6583582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com