Firefox 让Greasemonkey在第一次加载时单击按钮,然后每隔一段时间单击?
我正在尝试制作Greasemonkey脚本,该脚本每隔一段时间单击一个按钮,并且在第一次加载时不需要等待就可以单击它 我制作了这段代码,每120秒点击一次,但第一次加载页面时,我必须等待120秒,代码才能点击GO按钮,否则我必须手动执行此操作:Firefox 让Greasemonkey在第一次加载时单击按钮,然后每隔一段时间单击?,firefox,click,settimeout,greasemonkey,Firefox,Click,Settimeout,Greasemonkey,我正在尝试制作Greasemonkey脚本,该脚本每隔一段时间单击一个按钮,并且在第一次加载时不需要等待就可以单击它 我制作了这段代码,每120秒点击一次,但第一次加载页面时,我必须等待120秒,代码才能点击GO按钮,否则我必须手动执行此操作: window.setTimeout(function(){document.getElementById("masterPage_cphPageBody_btnGo").click()},120000) 这是网站上与之相关的源代码 <input
window.setTimeout(function(){document.getElementById("masterPage_cphPageBody_btnGo").click()},120000)
这是网站上与之相关的源代码
<input id="masterPage_cphPageBody_btnGo" name="masterPage$cphPageBody$btnGo" value="Go" onclick="SetSearchDate();showWaitpage();" class="btn2" type="submit">
如何添加一行,以便在页面第一次加载时单击GO,然后在加载120秒后单击GO
按下GO按钮前后的网页具有相同的URL,因此添加click on GO按钮(无需等待时间)会将网页发送到一个循环中 已单击URL加载的GO
已加载URL并单击 已加载URL并单击 检查第一次单击GO按钮前后页面的差异 因此,我需要脚本立即单击Go按钮,仅当页面上没有显示以下页面时
<span id="masterPage_cphPageBody_lblSelectAvailableTime" class="bodyBold">Select an available time</span>
选择一个可用时间
但如果页面上显示“选择可用时间”文本,脚本应等待120秒
我正在运行:Greasemonkey、Windows 8 64、Firefox在匿名函数上使用命名函数() 然后使用
document.querySelector
检查该元素是否存在。(该函数比getElementById
灵活得多)
因此,您的代码变成:
if (null === document.querySelector ("#masterPage_cphPageBody_lblSelectAvailableTime") ) {
clickGoButton (); //-- Initial, immediate click.
}
window.setTimeout (clickGoButton, 120000);
function clickGoButton () {
document.getElementById ("masterPage_cphPageBody_btnGo").click ();
}
考虑到post和pre Go按钮URL是相同的,以避免启动循环,我发现post和pre click之间存在文本差异,并使用它来避免循环 这是最后为我工作的代码
if (/Select an available time/i.test (document.body.innerHTML) )
{
window.setTimeout (clickGoButton, 120000);
}
else {
clickGoButton ();
}
function clickGoButton () {
document.getElementById ("masterPage_cphPageBody_btnGo").click ();
}
按下GO按钮前后的网页具有相同的确切URL,因此添加click on GO按钮(无需等待时间)会将页面发送到URL加载的循环中GO clicked URL加载GO clicked URL加载GO clicked GO clicked…好的,请看修订后问题的更新答案。我想我几乎想出了相同的解决方案。请看我下面的答案。请注意,这种方法会带来很大的性能损失。在这种情况下,这不重要,但这是一个坏习惯。为什么?您的意思是选择实际文本与span ID?。。编码很有趣。。我真的很喜欢做这件小事。。谢谢你的帮助!