私は、HTML ページとして書いている、テスターが使用するための単純なインターフェースに取り組んでいます。私がする必要があるのは、ユーザーがボタンを押したときに特定の URL を開くことです (URL は別のサーバーで Hudson/Jenkins ジョブをトリガーします)。これを達成するために私が使用しているコードは次のとおりです。
function triggerJob() {
var url = "...";
var trigger = window.open(url);
setTimeout(function() {trigger.close();}, 1000);
}
いくつかのメモ:
- 私はこれが私がやりたいことを達成するための悪い方法であることを知っています. 私はすでに jQuery を使用してソリューションを実装していますが、何らかの理由で、その方法で URL をクエリしても Hudson サーバーでのジョブが開始されません。奇妙なことに、同じマシンから Ruby スクリプトを使用してクエリを実行すると、問題なく動作します。
- ウィンドウを開いてすぐに閉じると、ブラウザは想定どおりに動作しますが、ハドソンサーバーがそれを登録してジョブを開始するには速すぎるため、タイムアウトを行う必要があります。
trigger.close();
匿名関数内以外に他のステートメントを入れてみましたが、それらも実行されません。setTimeout が本来あるべきブロックを実行していないことは間違いありません。
あなたが私に与えることができるかもしれないどんな助けにも感謝します. 私はこれを何時間もいじっていましたが、コードがタイムアウトを正しく実行していない理由を理解できません。