强制浏览器打开新标签

时间:2014-10-29 23:20:15

标签: javascript jquery web-services tabs popup

向我的同事打招呼!

我需要一些帮助:

我创建了2个允许用户创建“ClusterLinks”的站点 - 与数据库相关的链接,其中保存了多个用户添加的链接。 您可以访问此页面luckycrew.net

(注意:此时,只有“永久”选项才能正常工作)

您可以亲自尝试或使用我刚刚准备的链接向您展示原则:The Cluster Gate

该网站真的是自我解释。

但是,如果我使用的浏览器不同于firefox(这在我的目的下非常适用), 第一个链接按照预期在新选项卡中打开,而后面的链接显示在窗口式弹出窗口中,这非常难看,而不是我想在这里实现的。

链接打开的代码是:

$("#openLink").click(function(){     
for(var i=0;i<theLinks.length;i++){
    var elim = theLinks[i].replace(/\"/g,'');  //eliminate double quotes
    window.open(elim,'_blank');
}

});

从研究中我发现我可以直接在HTML-DOM中的链接上使用JQuery的click()函数,但正如我所料,这不是我想要的效果(并且根本没有正常工作).... / p>

这里的一个重要注意事项是,由于实施原因,我不能在这里使用AJAX (如果确实需要,我可以从我的php文件发布片段)

如果有人能帮助我的话,我真的非常感谢,如果你有任何改变,我可以提高页面的可用性和安全性!

编辑: 我尝试使用

创建鼠标单击事件
var a = window.document.createElement("a");
     a.target = '_blank';
     a.href = elim;

// Dispatch fake click
    var e = window.document.createEvent("MouseEvents");
    e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    a.dispatchEvent(e); //hope I got this example right

然而,对于Opera,它仍会在弹出窗口中的第一个后打开所有选项卡。我知道浏览器设置中有一个选项可用于编辑链接上的浏览器行为。不幸的是我不能为用户设置它,我不能强迫每个用户这样做。还是值得一试。

2 个答案:

答案 0 :(得分:0)

尝试更换&#39; _blank&#39;有一个名字。这将打开打开的同一个新标签中的所有链接。应该适用于大多数浏览器。

所以:

    window.open(elim,'SomeNameHere');

答案 1 :(得分:0)

如果您使用

window.open('','');

它应该有用。