4

私はPHPで開発しており、Curlを使用してリンクを最終目的地までたどっています。メタタグのリダイレクトや JavaScript のリダイレクトが設定されたページにたどり着くことがあります。ページに両方がある場合、どちらに従うべきですか (つまり、どちらが最初に起動するか)?

メタ タグの更新の例:

<meta http-equiv="refresh" content="0;URL='http://location1.com/'">

JavaScript 更新のサンプル:

<script>
window.location.href='http://location2.com/';
</script>
4

3 に答える 3

9

このファイルを作成しました(名前を付けましょうtest.html

<html>
  <head>
    <meta http-equiv="refresh" content="0;URL='http://location1.com/'">
    <script type="text/javascript">
      window.location.href='http://location2.com/';
    </script>
  </head>
  <body>
    Hello
  </body>
</html>

コピーして保存できます。開くと、次のように表示されます。http://location2.com

タグがタグ<script>内にない場合、タグが最初に実行されることに注意してください。<head><meta>

于 2013-04-11T18:47:33.147 に答える
3

Hexblot の答えは良いアイデアです。何が起こるか知りたい場合は、試してみてください。しかし、実際に試してみると、Chrome は location2 に、IE は location1 に移動しました。したがって、実装に依存しているようです。これをスクリプトの構成可能なオプションにしたい場合があります。ただし、実際には、メタ タグに 1 つのリダイレクトがあり、スクリプトに別のリダイレクトがあるサイトは、(a) 可能性は低く、(b) 適切にコーディングされていません。

于 2013-04-11T18:55:20.333 に答える
0

どちらが最初に発砲するかを検出する良い方法はないと思います。

meta タグにはcontent、タイムアウトを指定するために使用できる属性があります。ただし、JavaScript では、リダイレクトを記述する方法が無限にあるため、いつリダイレクトが発生するかを検出することはほぼ不可能です。少なくとも実行せずにはいられません。例:

var t = 100;
setTimeout(function () {
    window.location.href='http://location2.com/';
}, t * 2);
于 2013-04-11T18:50:03.017 に答える