私はいくつかのドロップダウンリストを持つウェブサイトを持っています。 1つのドロップダウンリストで値を選択すると、他のドロップダウンリストのオプションを変更するjavascriptコードが実行されます。Javascript - 他のスクリプトを実行させてから、スクリプトを続行させてください。
(例:最初のリストで国を選択し、その下のドロップダウンにはその国の都市のリストが入力されます)。
これは私のウェブサイトではありません。これらのドロップダウンに値を入力するGreasemonkeyスクリプトを作成しようとしています。私はこのjQueryコマンドを使ってオプションの選択をシミュレートすることができます。
$('select[id="dropdown1"]').val("GBR").trigger('change');
これは問題なく動作します。一番上のドロップダウンで値を選択します。しかし、他の人たちには、私がそこに送る価値がまだ含まれていないからです。
私の選択に従って他のドロップダウンリストを作成したいが、それはスクリプトが終了するまで起こらない。つまり、Webサイトで実行され、ドロップダウンリストを入力するスクリプトは、スクリプトの終了を待ちます。
私が達成したいのは、スクリプトを一時停止し、ウェブサイトスクリプトを実行してからスクリプトを続行することです。言い換えれば、ウェブサイトのスクリプトに実行優先度を与えます。
setTimeoutを使ってみましたが、うまくいかなかった。トップドロップダウンリストの値を変更することも停止します。
setTimeout(function() {
$('select[id="dropdown1"]').val("GBR").trigger('change');
}, 3000);
私のスクリプトを一時停止する方法、他の人に実行させてからスクリプトを実行し続ける方法はありますか?
他のドロップダウンのオプションはどのようにロードされていますか? – dferenc
そのコードを 'setTimeout'コールバックに入れてはいけませんが、もう一方のセカンダリコードは他のリストと一緒に使うべきです。 – trincot
FirefoxでGreasemonkey 4を使用していますか? –