ページ内の要素で 302 リダイレクトを介して変更された URL を Javascript で監視する方法はありますか?
制御できないリモート サーバー上にスクリプトがあり、スクリプト タグを介してロードされます。特定の状況では、302 リダイレクトがすぐに別の場所に返される場合があります。
このリダイレクトを観察し、新しい場所を通知して、読み込まれた URI に応じて異なるアクションを実行する方法はありますか?
ページ内の要素で 302 リダイレクトを介して変更された URL を Javascript で監視する方法はありますか?
制御できないリモート サーバー上にスクリプトがあり、スクリプト タグを介してロードされます。特定の状況では、302 リダイレクトがすぐに別の場所に返される場合があります。
このリダイレクトを観察し、新しい場所を通知して、読み込まれた URI に応じて異なるアクションを実行する方法はありますか?
ここでの一般的な知恵はノーのようですが、テストしたい場合は、jQuery の ajax を使用してスクリプトをロードしてみてください。
var redirected = false;
$.ajax({
url: url,
dataType: "script",
statusCode: {
302: function() {
redirected = true;
}
},
success: function () {
if (redirected) {
// something
} else {
// something else
}
}
});
スクリプトは、成功関数に到達するまでに既に実行されているため、機能したとしてもまったく役に立たない可能性があることに注意してください。
私はそうは思わない。W3C のドラフト仕様では、リダイレクトに透過的に従うと書かれており、ページに要素を追加するだけの場合は、プロセスをそれほど可視化するものを使用していませんXMLHttpRequest
(幸運なことscript
に、そこからload
/onreadystate
イベントを取得します)。