使用window.open打开新窗口时经常会被浏览器拦截,自己尝试解决方案如下:
a标签替代
<a href="javascript:void(0)" onclick="window.open('http://www.baidu.com', '_blank');">click打开新窗口</a>
或者
<a href="javascript:void(0)" onclick='aaa();''>click打开新窗口</a>
function aaa() {
window.open('http://www.baidu.com', '_blank');
}
或者
ele.onclick = function() {
window.open('http://www.baidu.com', '_blank');
}
或者
ele.onclick = function() {
newWindow('http://www.baidu.com', 'bbb')
}
function newWindow(url, id) {
var a = document.createElement('a');
a.setAttribute('href', url);
a.setAttribute('target', '_blank');
a.setAttribute('id', id);
if(!document.getElementById(id)) {
document.body.appendChild(a);
}
a.click();
}
重定向
先通过用户点击打开一个新的空白窗口,然后再对新打开的页面进行重定向。
ele.onclick = function() {
var tempWindow = window.open('', '_blank', ''); //打开一个新的空白窗口
tempWindow.location.href = 'http://www.baidu.com'; //对新打开的页面进行重定向
}
下面方法不可行。
setTimeout(function() {
window.open('http://www.baidu.com', '_blank');
}, 100);
网友评论