导读:
作为一名优秀的前端开发者,应该清楚了解浏览器的脾气,为了阻击各种广告弹窗,大部分浏览器都默认拦截了window.open()行为,那么我们要如何在浏览器上弹出一个新窗口呢?
解决方法:
有的朋友可能会说,直接在js里使用window.location.href不就行了,你不知道的是,location.href是直接在当前窗口进行跳转的,实现不了我们的场景需求,我们需要的是打开新窗口,因此最好的解决方案是:创建一个跳转的a元素,模拟发送click请求后将该元素从文档中删除,代码如下:
<script type="text/javascript">
/**
* 创建一个跳转的a元素,模拟发送click请求后将该元素从文档中删除
*/
function openNewWindow(url) {
$('body').append($('<a href="' + url + '" target="_blank" id="openNewWindow"></a>'))
document.getElementById("openNewWindow").click(); //点击事件
$('#openNewWindow').remove();
}
</script>
然后在需要跳转的地方直接调用,如下:
<script type="text/javascript">
var url="http://zy13.net/";
openNewWindow(url);
</script>