以下是计时器http://www.prezzipazzi.com/prodotto.php?id=1809的示例 我需要一个代码,当计时器达到0时,它会自动点击button1809。
我尝试了这个,但它不起作用:
var waitForZeroInterval = setInterval (CheckForZero, 0);
var hasRun = false;
function CheckForZero () {
if ( (unsafeWindow.seconds == 0) && (unsafeWindow.milisec == 0) )
{
clearInterval (waitForZeroInterval);
var targButton = document.getElementById ('bottone1809');
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
targButton.dispatchEvent (clickEvent);
};
if (!hasRun) {
hasRun = true;
setInterval(CheckForZero, 35000);
};
}
答案 0 :(得分:1)
是否单击按钮一次然后停止,或者根本不单击按钮?
看起来hasRun
逻辑是错误的。
我无法在该网站进行测试,因为(1)它让我很烦恼,(2)似乎需要注册 - 我不会这样做。所以,请确认它的运作方式如下:
如果一切正确,和当前代码点击按钮一次,那么这应该有效:
var waitForZeroInterval = null;
function RestartZeroCheck () {
waitForZeroInterval = setInterval (CheckForZero, 100);
}
function CheckForZero () {
if ( (unsafeWindow.seconds == 0) && (unsafeWindow.milisec == 0) )
{
clearInterval (waitForZeroInterval);
var targButton = document.getElementById ('bottone1809');
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
targButton.dispatchEvent (clickEvent);
//--- After a short pause, start checking for the next timer to zero.
setTimeout (RestartZeroCheck, 333);
};
}
RestartZeroCheck ();
请注意,如果可行,则检查页面的结构表明:
var targButton = document.getElementById ('bottone1809');
可以改为:
var targButton = document.querySelector (
"#left-inside div.post-wrapper td center input[id^='bottone']"
);
因此拍卖编号不必硬编码。
答案 1 :(得分:0)
更多更新:
HTML
<input type="button" name="button1" id="button1" onclick="do_some();"/>
脚本
var waitForZeroInterval = setInterval (function(){}, 0);
var hasRun = false;
function CheckForZero () {
clearInterval (waitForZeroInterval);
jQuery('#button1').click();
}
if (!hasRun) {
hasRun = true;
waitForZeroInterval = setInterval(CheckForZero(), 1000);
}
function do_some(){
alert("thank you");
}
这工作正常..我已经测试过了。我在1秒后收到警报。单击该按钮,然后调用do_some函数以显示警报。 你可以在这里查看run code