Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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单击没有href的项目_Javascript_Dom Events_Greasemonkey - Fatal编程技术网

使用javascript单击没有href的项目

使用javascript单击没有href的项目,javascript,dom-events,greasemonkey,Javascript,Dom Events,Greasemonkey,基本上,我使用的是名为greasemonkey的Firefox插件,我正在尝试编写一个脚本,其目的是在每个页面上找到一个特定的类指定的图像并单击它。如果要单击的项目有一个href,这是相当容易完成的,因为这里有几个其他帖子,有些帖子使用锚等等,但是假设没有href,有没有办法单击图像或按钮 例如,假设我想通过一项调查,他们有几个复选框或单选按钮。有没有办法使用greasemonkey中的脚本选择按钮 作为参考,这是我过去点击带有href属性的按钮时所做的 $("a.tip")

基本上,我使用的是名为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似乎不再承载该文档,因此很难获得该文档

此外,这与单击侦听器不同,因为我希望脚本执行单击操作。如果您有任何参考资料能为我指明正确的方向,我们也将不胜感激


最后一点注意,我对这个web代码领域相当陌生,所以如果您愿意像我什么都不知道一样解释它,我一点也不会生气。

因为您使用的是JQuery,我假设您的脚本中有一个@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)
在这里:

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

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

此方法即使在.click或jQuery的`.单击“不”时也有效。但是,没有任何方法对每个控件都有效

纯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版本:

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

greasemonkey的主页:非常感谢,firefox插件链接仅引用了我前面提到的站点。我会确保我将其添加到书签中。用于制作按钮的html示例是什么?您可能想看看这个,因为它似乎非常接近您自己的问题:酷,我在搜索时没有看到这个。我会用这些信息把事情弄得一团糟。就一些示例html而言,我可能需要花点时间才能看到,因为我目前正在使用智能手机,提取源html并不是最容易的事情。
var clickTarget = $ ("Any valid jQuery selector");
var clickEvent  = document.createEvent ('MouseEvents');
clickEvent.initEvent ('click', true, true);
clickTarget[0].dispatchEvent (clickEvent);