通过 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');
}
所以我遇到了一个看似简单的问题。我正在尝试使用以下代码在页面上自动打开特定的 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');
}