web-dev-qa-db-ja.com

メタリフレッシュが機能しませんか?

私はのラインに沿って何かを使用しているページを持っています

<meta http-equiv="refresh" content="0;url=http://example.com/" />

しかし、特定のワークステーションの特定のユーザーにとっては、これは機能しません。 IEにあります。クッキーまたは設定のどこかに問題があり、これが失敗する可能性がありますか?私はそのようなことを聞​​いたことがありません。

40
GBa

問題は、IEがこれを見るとき:

<meta http-equiv="refresh" content="0;http://www.example.com" />

コンテンツ属性に数字が含まれていると想定しています。唯一の時間IEはURLをチェックします。コンテンツ属性に「URL =」が含まれている場合、すべてのブラウザで最も使用可能なリダイレクトは次のとおりです。

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

上記の例では、即座にリダイレクトしますが、0を別の番号に変更すると、その秒数だけ待機します。これがすべて理にかなっていることを望み、それはうまく機能するはずですが、私はまだ私の最初のアイデアがより良いものだったと思います。

73
Dave

Internet Explorerには、メタタグの更新を許可しないセキュリティ設定があります。 [セキュリティ]タブの下にあり、[その他]で[カスタムレベル]と[メタタグの更新]を選択します。無効にすると、メタリフレッシュが機能しなくなります。

IEのセキュリティレベルを「高」に設定すると、IEを選択的に無効にできるほか、自動的に無効になります[IE9で確認]。

34
Austin

iEの本当に古いバージョンですか?もしそうなら、試してください:

<meta http-equiv="refresh" content="0;url=http://example.com/"> </meta>

空白が必要です。 HTMLエディターは文句を言いますが、無視してください。

5
Cal

このソリューションをご覧ください。 javascriptとmeta-refreshの両方を同時に処理します。 Meta-refresh and javascript

3
Haluk

METAタグは空のタグではなく、HTMLには終了タグがありません。XHTMLのみです。 (実際にXHTMLを送信している場合、IEの古いバージョンでは正しく動作しない可能性があります。とにかく、XHTMLを古いIEバージョン)

試してください:

<meta http-equiv="refresh" content="0;url=http://example.com/">

W3 Schools METAタグの説明

あなたも試してみてください:

  1. IEのメジャーバージョンとマイナーバージョンを確認します。これは、help-> aboutメニューオプションで実行できます。
  2. IEは歴史的に、ファイル名とMIMEタイプによって混乱してきました。 HTMLをhtmまたはhtml拡張ファイルとして送信していること、およびそれらのファイルタイプがtext/html mimetypeを送信するようにサーバーに設定されていることを確認してください。
  3. サーバーが競合するメタリフレッシュHTTPヘッダーを送信していないことを確認してください。

Facebookアプリケーション(ページタブアプリまたはIFRAMEアプリ)で誰かがメタリフレッシュ新しいURLにリダイレクトするを使用しようとすると、タグは何らかの理由でFacebookによって無効になります。

回避策は次のとおりです。

<script>
top.window.location = 'http://example.com';
</script>

FacebookアプリケーションはIFRAMEにあるため、「top」をターゲットにすることを忘れないでください。

0
Raptor