如何使用jQuery + Greasemonkey清除这个伪复选框?

如何使用jQuery + Greasemonkey清除这个伪复选框?

问题描述:

我目前正在研究一个需要分享按钮到vk.com(俄罗斯Facebook)的网站。如何使用jQuery + Greasemonkey清除这个伪复选框?

问题是当选择“添加图像”复选框时,共享似乎不起作用。我已经尝试使用Greasemonkey $("input:checkbox").attr('checked', false);,但它没有奏效。
我认为这是因为复选框是使用函数而不是纯HTML创建的。

的复选框被使用下面的函数创建的:

if (!window.imageCheck) { 
    window.imageCheck = new Checkbox(ge('add_image'), { 
    checked: true, 
    label: 'add image', 
    width: 150, 
    onChange: function(val) { 
     if (val) { 
     showImage(currentImage); 
     recountImages(); 
     } else { 
     hide('image_cont', 'select_image'); 
     } 
     doResize(true); 
    } 
    }); 
} 
doResize(true); 

当我查看网页源,复选框实际上处于隐藏的输入。 <input type="hidden" id="add_image" name="add_image" value="1" />我试过做$("#add_image").val("0");希望它能起作用,但还是什么都没有。

+0

我没有看到标题和问题之间的关系... Greasemonkey?分享如何? – Rudie

发送点击事件到适当的节点应该做的伎俩。喜欢的东西:

if ($("#add_image").val() != "0") { 
    //--- Assumes #add_image is the user-interactive node (seems doubtful) 
    var clickableNode = $("#add_image"); 
    var clickEvent  = document.createEvent ('MouseEvents'); 
    clickEvent.initEvent ('click', true, true); 
    clickableNode[0].dispatchEvent (clickEvent); 
} 


然而,现在还不能确定是#add_image是正确的节点。如果它不起作用,请回答以下问题:

  1. ge()函数来自哪里?什么库?或者发布源代码,如果它是内联的。
  2. <input id="add_image"...是否有onChange处理程序源?什么是Firebug的活动标签显示?
  3. 验证#add_image当复选框被选中时,其值为"1",否则为"0"
  4. 链接到目标页面或将其代码保存到磁盘并链接到它pastebin.com

另外,a design flaw introduced into Greasemonkey 1.0,可能会导致一些问题(即使你不使用jQuery)。尝试将// @grant GM_getValue添加到脚本的Metadata Block