我有这个代码可以满足我的需要。它会在另一个标签页面中打开链接,但会移动到新打开的标签页,而当前标签位于此处。我希望它保持当前标签处于活动状态,新打开的标签页面刚刚打开。
function loadpopunder() {
var clicked = false;
$('a').each(function() {
this.onclick = function() {
var a = document.createElement("a");
a.href = "http://sitetopopeninnewtab.com";
if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1)
{
a.target = "_blank";
}
if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1)
{
// var evt = new MouseEvent('click', {'view': window, 'bubbles': true, 'cancelable': true, });
var evt = document.createEvent("MouseEvents");
}
else {
// var evt = new MouseEvent('click', {'view': window, 'bubbles': true, 'cancelable': true, 'metaKey': true, 'ctrlKey': true});
var evt = document.createEvent("MouseEvents");
}
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0,
true, false, false, false, 0, null);
if (clicked == false) {
a.dispatchEvent(evt);
clicked = true;
}
}
});
if(window.location.href == 'http://mymainwebsite.com/'){
loadpopunder();
}
答案 0 :(得分:0)
这不能正确完成,因为您依赖于浏览器设置。即使您使用target='_blank'
在新标签页中打开网址,如果浏览器设置为在弹出窗口中打开新网页,您也不会获得新标签。
您可以在评论中看到所有浏览器都有不同的行为。
但是,您可以使用javascript window
object
您可以做的其他事情是使用javascript visibility api检查窗口是否有焦点。
希望有所帮助。