gpt4 book ai didi

javascript - Greasemonkey 脚本。如何自动点击中间有未知数量空白的链接

转载 作者:行者123 更新时间:2023-11-29 19:37:49 25 4
gpt4 key购买 nike

我想要一个 greasemonkey 脚本,它可以自动点击包含特定单词的链接。在这种情况下,我希望脚本单击“单击此处接受!”的链接。我找到了一个有效的脚本,但是,我想使用它的网站有一个异常链接。在单词“Here”和“To”之间有未知数量的空格

<a
href="accept.php?eSessID=7773160788107402312135408908242639440395021097128232706420140705121030&eSignupID=413&eEventID=102&sunow=1&ceRef=MOBILE"><b><u>Click Here
To Accept!</u></b></a>

我发现这个脚本似乎可以在具有正常链接的网站上运行。但是,我怀疑由于未知数量的空格,脚本无法在上述链接上运行。

// ==UserScript==
// @name Auto Click
// @version 1.0
// @author Joe
// @include http://website.com/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @grant GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
introduced in GM 1.0. It restores the sandbox.
*/

//--- Note that the contains() text is case-sensitive.
var TargetLink = $("a:contains('Click Here To Accept!')")

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

我是编程新手,对 Javascript 的了解非常有限。请帮我找到解决办法。任何帮助将不胜感激。

谢谢。

最佳答案

在 Scriptish 中,您可以使用简化的 XPath 函数:

GM_xpath("//*[normalize-space()='Click Here To Accept!']//ancestor::a").click();

当你想获得所有出现的列表时,使用:

var myLinks = GM_xpath({path:"//*[normalize-space()='Click Here To Accept!']//ancestor::a", all:true});

并遍历返回的链接。请记住在元数据 header 中 @grant GM_xpath

填充
当你的userscript引擎的API没有提供GM_xpath时,你可以用document.evaluate()来实现:

if(!this.GM_xpath)
this.GM_xpath = function(descriptor)
{
if(descriptor === null || typeof descriptor === 'undefined')
throw new TypeError('GM_xpath(): Descriptor must not be null or undefined.');

var
result, item, args,
array = []
;

args = descriptor.constructor.name === 'String'
? {path: descriptor, all:false}
: {path: descriptor.path, all: descriptor.all}
;

result = document.evaluate
(
args.path,
document,
document.createNSResolver(document),
args.all ? XPathResult.ORDERED_NODE_ITERATOR_TYPE : XPathResult.FIRST_ORDERED_NODE_TYPE,
null
);

if(!args.all)
return result.singleNodeValue;

while(item = result.iterateNext())
array.push(item);
return array;
};

关于javascript - Greasemonkey 脚本。如何自动点击中间有未知数量空白的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24588668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com