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

Opening new tab when clicking on a link in my website keeping the current tab active

本文关键字:选项 活动状态 网站 链接 新选项 单击      更新时间:2023-09-26

我有这段代码可以满足我的需要。它打开了另一个选项卡中的链接,但它移动到了新打开的选项卡,留下了我所在的当前选项卡。我希望它保持我当前选项卡的活动状态和刚刚打开的新打开选项卡。

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

这是无法正确完成的,因为您依赖于浏览器设置。即使您使用target='_blank'在新选项卡中打开url,如果浏览器设置为在弹出窗口中打开新页面,您也不会得到新选项卡。

你应该在这里和这里查一下其他SO的答案。

你可以在评论中看到,所有浏览器都有不同的行为。但是,您可以使用javascript window对象管理新打开的窗口

您可以做的另一件事是,通过使用javascript可见性api来检查窗口是否聚焦。

希望能有所帮助。