Javascript 如何单击一个";答案是「;基于图像源的链接?
我有一个简单的“谁是”游戏页面,我想用Greasemonkey制作一个简单的自动回答脚本。我怎样才能做到 基于图像Javascript 如何单击一个";答案是「;基于图像源的链接?,javascript,click,greasemonkey,Javascript,Click,Greasemonkey,我有一个简单的“谁是”游戏页面,我想用Greasemonkey制作一个简单的自动回答脚本。我怎样才能做到 基于图像src中的sid: <img src="whois_picture.php?yid=123456&sid=3084" /> 将sids和answers作为对象,如下所示: var answerKey={ 3084:“d” ,3023:“a” //等等。 }; 然后使用jQuery选择正确的答案链接 最后,向链接发送一个单击事件 以下是完整脚本的外观: /==
src
中的sid
:
<img src="whois_picture.php?yid=123456&sid=3084" />
sid
s和answers作为对象,如下所示:
var answerKey={
3084:“d”
,3023:“a”
//等等。
};
以下是完整脚本的外观:
/==UserScript==
//@name\u自动应答脚本
//@包括http://thedudu.com/auto_select/*
//@需要http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
//@grant GM_addStyle
//==/UserScript==
/*-需要@grant指令来解决引入的设计变更
在GM 1.0中。它会恢复沙箱。
*/
var应答键={
3084:“d”
,3023:“a”
//等等。
};
设置超时(单击Answerifany,222);//--222毫秒
功能单击回答任何(){
var questImg=$(“谁是谁”img);
var questSid=questImg.attr(“src”)。替换(/^.+?\bsid=(\d+).*$/i,“$1”);
var answerVal=answerKey[questSid];
if(应答类型!=“未定义”){
console.log(“找到的Ans…”);
//--找到具有答案值的。
var answerInp=$(“#游戏选项输入[值='”+answerVal+“]”);
if(应答长度){
//--在本例中,链接是上一个同级元素。
var answerLink=answerInp.prev();
console.log(answerInp、answerLink);
//--点击链接。
console.log(“单击…”);
var clickEvent=document.createEvent('MouseEvents');
clickEvent.initEvent('click',true,true);
answerLink[0]。调度事件(clickEvent);
}
}
}
另请参见。谢谢,没问题。“我们都曾经有过。”梅利斯,虽然严格来说这不是问题的一部分,但目标页面似乎有一个竞赛条件(计时)。在脚本中添加一点延迟似乎可以将其清除。请参阅修改后的答案。如果您有删除此问题的正当理由,请将其标记以引起主持人的注意。不要破坏它。
<div id="whois_guestion">
<img src="whois_picture.php?yid=123456&sid=3084" />
</div>
<div id="game_options">
<a href="#" class="game_option">Mickey Mouse</a>
<input type="hidden" value="a" name="secenekharf" />
<a href="#" class="game_option">Bugs Bunny</a>
<input type="hidden" value="b" name="secenekharf" />
<a href="#" class="game_option">Gofy</a>
<input type="hidden" value="c" name="secenekharf" />
<a href="#" class="game_option">Mario</a>
<input type="hidden" value="d" name="secenekharf" />
</div>