使用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