使用javascript点击没有href的项目

时间:2012-04-13 20:13:20

标签: javascript javascript-events greasemonkey

基本上我使用名为“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似乎不再被托管,因此很难获得文档。

此外,这与点击侦听器不同,因为我希望脚本执行单击操作。您可能拥有的任何可能指向正确方向的参考资料也将受到赞赏。

最后一点,我对这个“网络代码”领域还是比较陌生的,所以如果你能像我什么都不知道那样善解释,我就不会被冒犯了。谢谢!

2 个答案:

答案 0 :(得分: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/

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

答案 1 :(得分: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驱动的页面上,请确保首先检查目标节点是否存在,并在必要时等待。