假设我有一串这样的链接:
<a href="www.google.co.uk">gb version</a>
<a href="www.google.ie">roi version</a>
<a href="www.google.com">non-localised</a>
Run Code Online (Sandbox Code Playgroud)
有没有快速的方法使链接在后台打开而不会使用jquery从索引页面失去焦点?
您可以使用CTRL+手动执行此操作Left-click。现在您基本上可以模拟它,event.initMouseEvent它具有单击事件的所有属性。包括CTRL+Left-click事件。
唯一的缺点是:
他的方法只能在MouseEvent 被调度之前调用
这意味着您必须取消默认的锚点事件并创建一个也可以自定义触发的自定义事件。
您event.preventDefault();可以取消默认锚点事件的发生:
$('a').click(function(event)
{
event.preventDefault();
openNewBackgroundTab($(this));
});
Run Code Online (Sandbox Code Playgroud)
我将把单击的元素作为参数提供给自定义事件创建者(这用于获取单击的 href)。
我们将在其中创建一个全新的“浮动”元素,其中包含自定义事件,并且我们必须手动触发该事件:
function openNewBackgroundTab(elem)
{
var a = document.createElement("a");
a.href = elem.attr('href');
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
a.dispatchEvent(evt);
}
Run Code Online (Sandbox Code Playgroud)
请注意,jsFiddle 不支持外部链接
该方法来源:后台打开新标签页?