Javascript 使用jQuery打开多个选项卡

Javascript 使用jQuery打开多个选项卡,javascript,google-chrome,tabs,jquery,Javascript,Google Chrome,Tabs,Jquery,好的,我觉得我已经在这里做了尽职调查。。。JSFIddle- 我正在尝试创建一个将弹出多个选项卡的页面。我知道使用这个代码 <a href="google.com" target="_blank">New Tab</a> 我尝试过用不同的插件、超时、方法以编程方式创建链接并单击它们,我甚至尝试过“菊花链”进程并在页面加载时触发它(一个巨大的PHP/GET变量/page load触发器),但它仍然会弹出窗口,因为事件不是由用户发起的 我试过 虽然我能读懂它,但我对它的理解

好的,我觉得我已经在这里做了尽职调查。。。JSFIddle-

我正在尝试创建一个将弹出多个选项卡的页面。我知道使用这个代码

<a href="google.com" target="_blank">New Tab</a>
我尝试过用不同的插件、超时、方法以编程方式创建链接并单击它们,我甚至尝试过“菊花链”进程并在页面加载时触发它(一个巨大的PHP/GET变量/page load触发器),但它仍然会弹出窗口,因为事件不是由用户发起的

我试过

虽然我能读懂它,但我对它的理解还不足以理解我应该传递给这个函数的内容。我试过这样的东西

jQuery("a.site").each(function(){
    var string = jQuery(this).attr("href") + "/" + jQuery("#launcher").val();
    jQuery(this).attr("href",string);
    clickLink(jQuery(this));
});
但我得到一个“对象没有方法'dispatchEvent'”控制台错误。我试着使用相同的“var事件”并调用

link.trigger(event);
但也有一个控制台错误。我唯一没有尝试过的是在Q/A中(使用jQuery.get()打开一个选项卡并对其进行写入),但是看到它仍然调用window.open(),我觉得我仍然会遇到完全相同的循环问题



嗯。把这一切都抛在脑后。。。除了“它由你的浏览器控制”之外,还有什么真正的答案吗?我觉得一定有办法。谢谢,为这本小说感到抱歉:)

我不会依赖于使用触发的
点击打开链接,不是所有浏览器都会像用户点击链接一样支持它(出于明显的安全原因)


只需循环遍历元素并抓取href,以您想要的方式操作它,然后将结果传递给
窗口。打开(url)

请参阅使用
dispatchEvent
打开新选项卡:{tested on chrome}


没有。这是浏览器所做的一件安全的事情,防止坏角色为用户弹出不需要的页面。你到底为什么要这么做?也许你可以重新考虑一下解决这个问题的方法?我知道如何调用window.open(),但这根本不能解决我的问题。。。你甚至没有看我的JSFIDLE,给我一个代码示例;如果你已经尝试过,它会产生我在这篇文章中解释的问题的确切结果。不酷!我看了小提琴…代码很难看。。。并试图触发链接上的
点击
。问题也很冗长…长大吧。对不起,我想帮忙!你说得对。我很抱歉。。。这个问题让我很沮丧,我问的任何人都会说这件事做不到。谢谢你的帮助,我很感激!window.open也不起作用,因此此解决方案没有帮助。有很好的理由感到沮丧,因为这真的无法做到,这是因为这是一种多年来一直被滥用的坏做法,因此任何一个合适的弹出窗口阻止程序都会被这些尝试触发(dispatchEvent也是如此)。最佳情况下,您将只能打开第一个选项卡。谢谢。。。这么多。我真的很感激!!这只为我打开了第一个链接。其他的被chrome屏蔽。@jbojcic这是在更新chrome之后,我想现在浏览器屏蔽它是为了避免无聊的广告
jQuery("a.site").each(function(){
    var string = jQuery(this).attr("href") + "/" + jQuery("#launcher").val();
    jQuery(this).attr("href",string);
    clickLink(jQuery(this));
});
link.trigger(event);
$('a.site').each(function () {  
    var clk = document.createEvent("MouseEvents");
    clk.initMouseEvent("click", false, true, window, 0, 0, 0, 0, 0, true, false, false, true, 0, null);
    this.dispatchEvent(clk);
});