Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何单击一个";答案是「;基于图像源的链接?_Javascript_Click_Greasemonkey - Fatal编程技术网

Javascript 如何单击一个";答案是「;基于图像源的链接?

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选择正确的答案链接 最后,向链接发送一个单击事件 以下是完整脚本的外观: /==

我有一个简单的“谁是”游戏页面,我想用Greasemonkey制作一个简单的自动回答脚本。我怎样才能做到

基于图像
src
中的
sid

<img src="whois_picture.php?yid=123456&sid=3084" />
  • sid
    s和answers作为对象,如下所示:

    var answerKey={
    3084:“d”
    ,3023:“a”
    //等等。
    };
    
  • 然后使用jQuery选择正确的答案链接

  • 最后,向链接发送一个单击事件

  • 以下是完整脚本的外观:

    /==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>