2012-08-29 40 views
-1

我目前正在研究一個需要分享按鈕到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

回答

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_image當複選框被選中時,其值爲"1",否則爲"0"
  4. 鏈接到目標頁面或將其代碼保存到磁盤並鏈接到它pastebin.com

另外,a design flaw introduced into Greasemonkey 1.0,可能會導致一些問題(即使你不使用jQuery)。嘗試將// @grant GM_getValue添加到腳本的Metadata Block