【解決方法】自動クリック ボタンがページ ループを生成する


こんにちは、私はChrome拡張機能を使用して、(印刷)「確認」ボタンを自動クリックしています
Web ページですが、このスクリプトはページをループし、無期限に更新します。

JavaScript
function autoClick() {
    labels = document.querySelectorAll('label');
    if (labels[1].innerText == "Modello di stampa") {
        document.getElementsByClassName("button confirm")[0].click();
    }
}

var first = true;
if(first) {
    first=false;
    autoClick();
}

私たちを手伝ってくれますか? どうもありがとう!

私が試したこと:

また、条件を追加してみました:

JavaScript
const elMessage = document.querySelector('.messages.confirms');
if (elMessage && elMessage.textContent.trim() === 'La stampa è stata inoltrata') {
    document.querySelector('.button.confirm')?.click();
}

解決策 1

ボタンをクリックすると、デフォルトの動作はページを送信します (ボタンがフォーム内にある場合など)。 クラスのボタンの正確な詳細はわかりません button confirm、どのようにセットアップされているか、どのような親を持っているかなど。HTML を共有していただければ、さらにお手伝いできます (Web サイトを開いて HTML ファイルをダウンロードして実行するわけではないことに注意してください。)。

ページのリロードを防ぐ方法の 1 つは、ボタン クリック イベントを処理して event.preventDefault() ボタンクリックハンドラー内。

次に、フォームを送信する場合は、手動で FormData ブラウザがフォームの送信自体を処理することなく、データをサーバーに送信します。

ここでもっと読む:
FormData – Web API | MDN[^]
Event.preventDefault() – ウェブ API | MDN[^]

解決策 2

最初の変数宣言を autoclick 関数の外に移動します。
この変数は、メソッドが呼び出されるたびに常に true にリセットされるため、無期限に呼び出されます。

コメント

タイトルとURLをコピーしました