使用target="_blank"
是有利巨大的成功。
例如。在Chrome中,主播与target="_blank"
打开一个新选项卡,但是,window.open
打开一个全新的窗口。
我试了几次实验,用target="_blank"
代替window.open
。
通过弹出式窗口拦截
// create an anchor, add to body, trigger click
var a = document.createElement('a');
a.setAttribute('href', 'http://google.com');
a.setAttribute('target', '_blank');
document.body.appendChild(a);
a.click();
// hijack first anchor, change href, trigger click
var a = document.getElementsByTagName('a')[0];
a.setAttribute('href', 'http://google.com');
a.setAttribute('target', '_blank');
a.click();
// hijack first anchor that has target=_blank, change href, trigger click
var a = $('a[target="_blank"]')[0];
a.setAttribute('href', 'http://google.com');
a.click();
通过弹出窗口拦截器允许
// hijack first anchor that has target=_blank, change href, next document click triggers it
var a = $('a[target="_blank"]')[0];
a.setAttribute('href', 'http://google.com');
$(document).click(function(){
$('a[target="_blank"]')[0].click();
});
// create an anchor, add to body, next document click triggers it
var a = document.createElement('a');
a.setAttribute('href', 'http://google.com');
a.setAttribute('target', '_blank');
document.body.appendChild(a);
$(document).click(function(){
a.click();
});
似乎只要弹出窗口是由用户交互触发时,弹出窗口阻止程序允许其阻止。
Mozilla的上window.open
文档:
https://developer.mozilla.org/en-US/docs/Web/API/window.open
所引用jQueryUI的链接是有关添加选项卡浏览器选项卡内的网络应用程序;不是关于添加浏览器选项卡! –
你知道吗?你是对的。回想起来,我不知道为什么我会联系到这一点。 – Giganticus