因为要做站外OAuth登录,所以准备用window.open来打开登录页面,但是我担心会遭到浏览器的屏蔽,于是做了个测试代码。
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<a href="#" id="a">进入其它网页</a>
<script>
document.getElementById('a').onclick = function () {
window.open('http://segmentfault.com');
return false;
};
</script>
</body>
</html>
我在一个网页中用window.open打开了另一个域名下的网页,没有遭到任何屏蔽。在Firefox,Chrome,Safari,Opera下面测试了,都没遭到屏蔽,甚至我还打开了Firefox的阻止弹出窗口,都没有被屏蔽。那么这些浏览器的屏蔽是怎么工作的呢?那些弹出窗口会被判定为恶意,并被屏蔽呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
如果是由用户触发的动作所引起的window.open就不会被浏览器所阻止,比如写在onclick这些事件handler里的,但如果是代码自己触发的就会被block,比如把你代码改一下
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<a href="#" id="a">进入其它网页</a>
<script>
setTimeout(function () {
window.open('http://segmentfault.com');
}, 1000);
</script>
</body>
</html>
这个窗口就会被浏览器block掉,你可以参考下mozilla上的说明,http://support.mozilla.org/en-US/kb/p...