5

私は次のコードを持っています:

<html>
<head>
<title>title of this stuff</title>
<script language="JavaScript"> 
  if (top != self) top.document.title = document.title;
</script>
<meta http-equiv="refresh" content="2;     URL=javascript:window.open('certainpage.html','_top');">
</head>
<body>
Body of this page
</body>
</html>

これは機能しません。私はこれをグーグルで検索し、どこでも同じ結論に達しました:これはうまくいくはずです。しかし、そうではありません。このページが表示されない理由を誰かに教えてもらえますか:1。JavaScriptが含まれている限り更新します(はい、ブラウザーでjsが有効になっています)2。トップフレームの新しいページに更新します

どんな助けでもいただければ幸いです!

4

1 に答える 1

13

Javascriptは、そのような更新メタタグでは機能しません。

とにかくjavascriptを使用しているので、次のように単純にしてください。

<script type="text/javascript">
    window.top.location = 'http://domain.tld/whatever/';
</script>

しかし、それを行うためのより良い(より賢いため)方法もあります。これには、各ページのURLをハードコーディングする必要はありません。ページが一番上にあるかどうかをチェックし、そうでない場合は、ページのURLを一番上に呼び出します

<script type="text/javascript">
    if(window.top.location != window.location) 
    {
        window.top.location.href = window.location.href; 
    }
</script>

また、javascript(一部のユーザーは無効にします)の使用を完全に避けたい場合は、さらに簡単な方法もあります。ヘッドセクションに以下を追加すると、そのページのすべてのリンクが「一番上」に開きます。

<base target="_top">

あなたがしなければならないのは、これらの3つのオプションの1つを選択することです。それらのすべてはあなたがうまくいくはずです。

于 2012-07-31T14:45:07.107 に答える