单击我网站上的链接时打开新选项卡,保持当前选项卡处于活动状态

时间:2015-03-19 12:33:58

标签: javascript

我有这个代码可以满足我的需要。它会在另一个标签页面中打开链接,但会移动到新打开的标签页,而当前标签位于此处。我希望它保持当前标签处于活动状态,新打开的标签页面刚刚打开。

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();
}

1 个答案:

答案 0 :(得分:0)

这不能正确完成,因为您依赖于浏览器设置。即使您使用target='_blank'在新标签页中打开网址,如果浏览器设置为在弹出窗口中打开新网页,您也不会获得新标签。

您应该查看其他一些有关它的答案herehere

您可以在评论中看到所有浏览器都有不同的行为。 但是,您可以使用javascript window object

管理新打开的窗口

您可以做的其他事情是使用javascript visibility api检查窗口是否有焦点。

希望有所帮助。