0

基本上我正在使用名为“greasemonkey”的 Firefox 插件,我正在尝试编写一个脚本,其目的是在每个页面上找到一个特定的类指定图像并单击它。如果要“点击”的项目有一个href,这很容易完成,因为这里有几个其他帖子,有些使用锚等,但假设没有href,有没有办法“点击”图像或按钮?

例如,假设我想完成一项调查,他们有几个复选框或单选按钮。有没有办法使用greasemonkey中的脚本来选择按钮?

作为参考,这是我过去所做的“单击”具有 href 属性的按钮的操作。

$("a.tip").each(function(){
if($(this).attr("caption")=="captionName"){
$.get("http://www.website.com" +$(this).attr("href"),window.location.reload());
return;
    }
});

*至于greasemonkey的能力,我不确定它能做什么,不能做什么。diveintogreasemonkey.org 似乎不再被托管,因此很难获得文档。

此外,这与单击侦听器不同,因为我希望脚本进行单击。您可能拥有的任何可以为我指明正确方向的参考材料也将不胜感激。

最后一点,我对“网络代码”这个领域相当陌生,所以如果你能像我什么都不知道一样解释它,我根本不会被冒犯。

4

2 回答 2

0

由于您使用的是 JQuery,我假设有一个 @require 是您的脚本。
// @require http://code.jquery.com/jquery.min.js

现在,为什么不click()适合你?
您是否在控制台中收到任何错误?

我试过这段代码

setTimeout(function(){
    alert('about to click/select a radio button')
    $('#radio2').prop('checked', true);
    alert('ready to click images with class .imagem ?')
    $('.imagem').click()
}, 2000)

这里:http: //jsfiddle.net/QkCs4/5/

对我来说很好。
看看它是否适合你。

于 2012-04-14T04:19:04.017 回答
0

您可以通过生成实际的点击事件来点击任何东西。不需要href,这种技术非常适合在“web 2.0”网站上激活现代的、由javascript驱动的控件。

即使.click()jQuery 的 `.click() 不可用,此方法也有效。(但是,没有一种方法适用于每个控件。)

纯 JavaScript(适用于 Firefox、Chrome、Greasemonkey 等):

var clickTarget = document.querySelector ("Any valid CSS selector");
var clickEvent  = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
clickTarget.dispatchEvent (clickEvent);


jQuery版本:

var clickTarget = $ ("Any valid jQuery selector");
var clickEvent  = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
clickTarget[0].dispatchEvent (clickEvent);


请注意,这两个片段都用于一个链接/按钮/等。一次。
在 AJAX 驱动的页面上,请确保首先检查目标节点是否存在,并在必要时等待。

于 2012-04-14T12:25:52.507 回答