我在 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 触发器对我不起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)