-1

我目前正在开发一个需要 vk.com(俄罗斯 Facebook)的分享按钮的网站。

问题是当“添加图像”复选框被选中时,共享似乎不起作用。我试过$("input:checkbox").attr('checked', false);使用 Greasemonkey,但没有用。
我认为这是因为复选框是使用函数而不是纯 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");希望它会起作用,但仍然没有。

4

1 回答 1

0

将点击事件发送到适当的节点应该可以解决问题。就像是:

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_images 值是"1"选中复选框时,"0"否则。
  4. 链接到目标页面或将其代码保存到磁盘并在pastebin.com链接到它。

此外,引入 Greasemonkey 1.0 的设计缺陷可能会导致一些问题(即使您不使用 jQuery)。尝试添加// @grant GM_getValue到脚本的元数据块

于 2012-08-30T03:32:48.387 回答