0

私はFacebook用に非常に人気のあるUserJSを作成しましたが、FF 3.6.13バージョンから(そのバージョンでは)動作しません。そのような要素をクリックする方法がわかりません:

<input value="Accept" type="submit" name="something... asdf" />

? このようなボタンをマウスでクリックすると、別のページにリダイレクトされます。

私のスクリプトが行うことは、Xpath でそのような要素を検索し、単純にそれらをクリックすることですacceptbutton.click();

Opera、Chrome、および FF <3.6.13 ではうまく機能しますが、最新バージョンでは何も起こりません。ここでstackoverflowで見つけたfireEvent関数とeventFire関数の両方も試してみましたが、これはよく役立ちますが、今回はできません。

おそらくJQueryのclick()機能を使用すると役立つでしょうが、userjsでjqueryを使用できません。

私も試しacceptbutton.form.submit();ましたが、間違ったページにリダイレクトされます。

編集 :

OK、コードフラグメントを追加しています

                 var acceptbuttons = xpath(document,'//label[@class="uiButton uiButtonConfirm"]/input');
        for (var i = 0; i < acceptbuttons.snapshotLength; i++) { 
        //will search for particular accept button
            var acceptbutton = acceptbuttons.snapshotItem(i);
            var acceptbuttonName = acceptbutton.getAttribute("name");

            if(acceptbuttonName.indexOf(urlPart)!=-1)
            {
            // it founds button but function below do nothing in FF
            acceptbutton.click();return;
            }
        }

助けてくれてありがとう!

4

3 に答える 3

1

最新の Firefox では、送信ボタンのメソッドを使用できます。click()他に何か問題があります。クリックの動作を妨げているフォームに onsubmit イベントがありますか、または間違ったボタンがありますか?

javascript: document.getElementById('submit-button').click(); void(0);これを Firefox 3.6.13 のロケーション バーに貼り付けて送信しました。そのアイデアの功績は次のとおりです: JavaScript auto-POST with NAME

于 2010-12-29T23:40:02.317 に答える
0

うーん、単純な document.whatever_formname.submit(); はしません。トリックをしますか?

于 2010-12-28T21:09:39.380 に答える
0

acceptbutton.form.submit();部分が送信されていないために機能しない場合はvalue="Accept"、非表示の入力を追加して、そうなるようにしてみませんか?

var hiddenInput = document.createElement('input');
hiddenInput.type = 'hidden';
hiddenInput.name = acceptbutton.name;
hiddenInput.value = acceptbutton.value;
acceptbutton.form.appendChild(hiddenInput);
acceptbutton.form.submit();
于 2010-12-28T21:17:14.623 に答える