0

私は、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 が本来あるべきブロックを実行していないことは間違いありません。

あなたが私に与えることができるかもしれないどんな助けにも感謝します. 私はこれを何時間もいじっていましたが、コードがタイムアウトを正しく実行していない理由を理解できません。

4

1 に答える 1

1

他のことをする過程でこの問題を理解したので、他の誰かが同じ問題を抱えている場合に備えて解決策を共有すると思いました. onClick問題は、フォームの送信ボタンの属性を使用してこの関数を呼び出していたことです。フォームが送信されると関数が呼び出され、関数の実行後すぐにページがリロードされ、triggerJob関数で設定されたタイムアウトがキャンセルされます。この方法で使用する場合は、リンク、ラジオ ボタンなどを使用する必要がありますsetTimeout。私を助けてくれたみんなに感謝します。

ドリュー

于 2012-07-20T14:33:28.543 に答える