gpt4 book ai didi

javascript - 使用 modernizr 确定是否支持多窗口打开

转载 作者:行者123 更新时间:2023-11-29 21:25:03 26 4
gpt4 key购买 nike

这里记录了我遇到的问题。
window.open behaviour in chrome tabs/windows

在 chrome 中无法通过 javascript 打开多个窗口。

如果支持,我想打开多个窗口,如果不支持,我将简单地返回一个链接列表。

有没有办法使用 modernizr 或除了浏览器嗅探之外的其他方法来确定是否支持该行为?

最佳答案

这种在浏览器之间甚至通过浏览器配置打开多个窗口的能力。所以永远不要假设你将能够打开多个弹出窗口,你可能能够,但你只能通过测试知道,测试艰难是非常容易的。

要测试打开弹出窗口是否成功,请检查返回值。

var popupWindow = window.open('http://www.google.com/');
if (!popupWindow) {
console.log('the window did not open');
// do other stuff
}

如果窗口打开,返回值将是一个 Window 对象。如果窗口没有打开,返回值将为 falsy,这个确切的返回值可能因弹出窗口阻止程序而异,但通常如果窗口没有打开,您可以假设该值为 false;意思是 undefinednull
因此,在窗口无法打开的情况下,很容易触发替代方法。

您不需要 modernizr 或任何插件,返回 Window 对象的行为在所有浏览器中都是相同的。

MDN 引用:
https://developer.mozilla.org/en-US/docs/Web/API/Window/open

Firefox 和 Safari 似乎默认支持打开多个窗口。然而,Chrome 会阻止第二个窗口并显示小的“弹出”阻止消息。此外,Chrome 还将阻止不是由直接用户操作产生的打开窗口;表示单击或按键。

关于javascript - 使用 modernizr 确定是否支持多窗口打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37685904/

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