-1

現在、vk.com (ロシアの Facebook) への共有ボタンが必要な Web サイトに取り組んでいます。

問題は、「画像を追加」チェックボックスが選択されているときに共有が機能していないように見えることです。$("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_imageの値を確認します。"1""0"
  4. ターゲット ページにリンクするか、そのコードをディスクに保存して、pastebin.comにリンクします。

また、Greasemonkey 1.0 に導入された設計上の欠陥により、(jQuery を使用していない場合でも) いくつかの問題が発生している可能性があります。スクリプトのメタデータ ブロックに追加// @grant GM_getValueしてみてください。

于 2012-08-30T03:32:48.387 に答える