通过 Tampermonkey 在新标签页中打开单击 Link 的方法?

Way to Open Clicked Link in New Tab via Tampermonkey?

所以我遇到了一个看似简单的问题。我正在尝试使用以下代码在页面上自动打开特定的 link:

// ==UserScript==
// @name     AutoClicker
// @include  https://example.com/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @grant    GM_addStyle
// ==/UserScript==

var TargetLink = $("a:contains('cars')")

if (TargetLink.length)
    window.location.href = TargetLink[0].href

//--- but open it in a new tab

效果非常好。

唯一的问题是我不知道如何在新选项卡中打开所选 link。我尝试了以下代码的迭代,但无济于事:

var TargetLink = $("a:contains('cars,' '_blank')")

我知道我需要使用 _blank,但我不确定究竟应该把它写在什么地方或是否应该写在 jQuery 中。我也试过将 _blank 放在 contains 之外,但我不确定我将如何在 jQuery 中编写代码。

我只是希望选中的 link 在被单击时 在新选项卡中打开 。有什么建议或想法吗?

问题不清楚,问的是两个不同的东西。 是否要在没有用户交互的情况下打开选项卡?

如果是, Tampermonkey 有一个功能:GM_openInTab()Doc

所以:

// ==UserScript==
// @name     AutoClicker
// @include  https://example.com/*
// @require  https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @grant    GM_openInTab
// ==/UserScript==

var TargetLink = $("a:contains('cars')");

if (TargetLink.length)
    GM_openInTab (TargetLink[0].href);

如果没有,jQuery's attr()Doc也很容易。

所以:

// ==UserScript==
// @name     NOT an AutoClicker, per question text
// @include  https://example.com/*
// @require  https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @grant    GM_addStyle
// ==/UserScript==

var TargetLink = $("a:contains('cars')");

if (TargetLink.length)
    TargetLink.attr ('target', '_blank');

对于 javascript 驱动的页面(也适用于静态页面):

// ==UserScript==
// @name     NOT an AutoClicker, per question text
// @match    *://YOUR_SERVER.COM/YOUR_PATH/*
// @require  https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @require  https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant    GM_addStyle
// @grant    GM.getValue
// ==/UserScript==
//- The @grant directives are needed to restore the proper sandbox.

waitForKeyElements ("a:contains('cars')", blankifyLink);

function blankifyLink (jNode) {
    jNode.attr ('target', '_blank');
}