单击我网站中的链接时打开新选项卡,保持当前选项卡处于活动状态
Opening new tab when clicking on a link in my website keeping the current tab active
我有这段代码可以满足我的需要。它打开了另一个选项卡中的链接,但它移动到了新打开的选项卡,留下了我所在的当前选项卡。我希望它保持我当前选项卡的活动状态和刚刚打开的新打开选项卡。
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来检查窗口是否聚焦。
希望能有所帮助。
相关文章:
- 使用纯javascript而非jquery使所选选项卡处于活动状态并保持非活动状态
- 我如何为列出的选项卡元素编写一个Protractor测试,它会检查它是否's是否处于活动状态
- Angular+bootstrap ui,检查当前选项卡是否已处于活动状态
- 单击我网站中的链接时打开新选项卡,保持当前选项卡处于活动状态
- JQuery UI 1.11 将选项卡设置为活动状态
- 页面刷新后,所选选项卡处于非活动状态
- 使第二个选项卡处于第一个活动状态
- 使选项卡处于活动/非活动状态未显示正确的数据
- 当选项卡处于活动状态时,更改子(孙)类
- Angularjs :动态创建的选项卡不会处于活动状态/选中状态
- 在加载新页面时保持选项卡永久处于活动状态
- Boostrap和Angular:同时保持两个选项卡处于活动状态
- 画布的奇怪行为 上下文变量定义位置导致选项卡处于非活动状态时画布呈现冻结
- 将焦点设置在带有错误消息的第一个输入元素上,并将包含它的 TabStrip 选项卡设置为活动状态
- 检测浏览器选项卡是否处于活动状态或用户是否已切换
- 检查选项卡是否打开为活动状态
- 仅在选项卡处于活动状态时加载数据
- 仅在选项卡处于活动状态时运行内容脚本循环
- 仅当选项卡未处于活动状态时触发某些内容
- 如何在页面重新加载后使用 Twitter 引导程序保持当前选项卡处于活动状态