点击带有长网址的按钮,使用javascript bookmarklet命名

时间:2010-09-27 15:09:17

标签: javascript bookmarklet

我需要一个可以点击按钮的javascript。问题是,页面上有100多个按钮都具有相同的值。这个名字很独特,但很长 元素的全名如下:

actions[http://apps.facebook.com/frontierville/giftaccept.php?next=giftaccept.php&senderId=1%3A1325206719&gh=3a8bfdace76051752a9127d1f9b43872&gift=nails&timestamp=1285598414&ref=tab&key=29b15e06ed9d7c00a8870c955ab938cf%24%24cfH1PUUZ%217bZYhg8M-o-XQc%218HHRMcvvyhuf4d%21.64qEvlQe&src=request&aff=gift&crt=nails&signature=6dd3fa03fe88f98b6dcab4faf4c7da94]

每个按钮的值是“接受并播放”。

因此。有没有办法让它点击名称中具有特定URL的按钮?

我试过了:

javascript:(function(){var b=document.getElementsByName('actions[http://apps.facebook.com/frontierville/giftaccept.php?next=giftaccept.php&amp;senderId=1%3A1325206719&amp;gh=3a8bfdace76051752a9127d1f9b43872&amp;gift=nails&amp;timestamp=1285598414&amp;ref=tab&amp;key=29b15e06ed9d7c00a8870c955ab938cf%24%24cfH1PUUZ%217bZYhg8M-o-XQc%218HHRMcvvyhuf4d%21.64qEvlQe&amp;src=request&amp;aff=gift&amp;crt=nails&amp;signature=6dd3fa03fe88f98b6dcab4faf4c7da94]');for(var j=0;j<b.length;j++){if(b[j].value.match(/^Accept and Play/i)){b[j].click();break;}}})()

它不起作用。有什么建议吗?

编辑: 如果有帮助,这里是其中一个按钮的信息来源:

<input value="Accept and Play" type="submit" name="actions[http://apps.facebook.com/onthefarm/giftaccept.php?senderId=1259413693&amp;gift=mysterygift&amp;timestamp=1285599906&amp;ref=gift_accept_tab&amp;key=78fcc7de3b36b8f9564262fab506893f%24%24ceK5RVRY61bZYhg8M-o-XQcyL%2CzHccEwEeuj4e-%21-dh0AD0A2AgyScd&amp;signature=32db959ce43f8330cf8fd992fbd53a51&amp;srcapp=FarmVille]">

1 个答案:

答案 0 :(得分:0)

你的脚本适合我。

您确定,您在脚本中使用了确切的名称吗?

页面中是否有其他共享相同名称的元素? 如果是:您最好也检查这些元素的类型。如果它们不是click() - 能够元素(例如隐藏输入或文本输入,这将导致异常,因此您的循环将被停止)

相关问题