gpt4 book ai didi

javascript window.open 在 safari 浏览器中

转载 作者:IT王子 更新时间:2023-10-29 03:20:28 26 4
gpt4 key购买 nike

我在 safari(ipad 和桌面版本)中打开一个新窗口时遇到了一个问题,该窗口围绕弹出窗口阻止程序展开。基本上我发现如果 window.open 不是从点击事件调用,safari 将阻止弹出窗口。

调用 window.open 的事件当前是从列表框中更改的。

在这种情况下,除了切换我们处理的事件以欺骗 safari 允许弹出窗口之外,还有其他方法吗? (onchanged 事件)

最佳答案

Safari 有一个弹出窗口拦截器,当链接被拦截时不会显示。

要检查弹出窗口阻止程序是否处于事件状态,请进入 Safari 设置 > 安全 > 诸如阻止弹出窗口之类的东西。

为了以简单的方式跨越它,因为我无法打开新窗口,所以我显示一个警告,显示弹出窗口被阻止。

在我的例子中,我使用选择输入来打开外部链接:

HTML

<select id="retailer" class="windowOpen retailer-submenu">
<option value="null">Select one</option>
<option value="http://amazon.com">Amazon</option>
<option value="http://ebay.com">eBay</option>
</select>

Javascript

<script type='text/javascript'>
$('select.windowOpen').change(function(){
var url = $(this).val();

var open = window.open(url);
if (open == null || typeof(open)=='undefined')
alert("Turn off your pop-up blocker!\n\nWe try to open the following url:\n"+url);
});
</script>

检查弹出窗口是否被阻止的代码是这样的:

var open = window.open('http://google.com');
if (open == null || typeof(open)=='undefined')
alert("Turn off your pop-up blocker!");

PS:jquery 触发器对我不起作用。

关于javascript window.open 在 safari 浏览器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9880316/

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