3

これが可能だとは思いませんが、やってみようと思いました。

私が取り組んでいるプロジェクトの一部として、別のサイトに、ユーザーが標準のアンカー リンクを介して移動できるページがあります。宛先ページの応答がかなり遅い場合があり、クライアントは「タイムアウト」を配置して、宛先ページへの移動に時間がかかりすぎる場合にブラウザのナビゲーションをキャンセルしてメッセージを表示することを望んでいます。

Javascript を使用して、既に進行中のブラウザー ナビゲーションをキャンセルすることはできますか (つまり、目的のサイトへの要求が既に行われています)。もしそうなら、どのように?

4

2 に答える 2

2

簡単なテストを実施しましたが、可能です。テストには PHP を使用しましたが、別の言語を使用しても問題ありません。要するに、JavaScript は に見られるようにそれを行うことができますcancel.php。サンプル コードを参照してください。

sleep.php

<?php
sleep(30);
echo 'hello';
?>

cancel.php

<h1>hello?</h2>
<script type="text/javascript">
location.href='sleep.php';
setTimeout(function(){
    location.href='#';
    alert('it is taking too long to respond, probably the site is down!');
}, 10000);
</script>

cancel.php を実行すると、sleep.php にリダイレクトされます。10 秒の読み込み時間の後、sleep.php の読み込みを停止し、サイトがダウンしていると判断します。

于 2012-11-07T21:48:55.737 に答える
-2

現在のDOMがまだ生きている間に、別の場所にリダイレクトできます。

この簡単なテストを実行すると、yahoo.comにリダイレクトされます

$("#btn").click(function() {
    document.location.href = "http://www.google.com";
    document.location.href = "http://www.yahoo.com";
});​

タイマーでテストしたことはありませんが、100%確実ではありませんが、動作するはずです。調査結果を投稿してください!

于 2012-11-07T21:47:02.057 に答える