2

header( 'Location: http://www.example.com/test.php' );ユーザーをに送信するために使用する場合test.php。IE9 コンソールでこれに気付きました:

HTML1113: Document mode restart from Quirks to IE9 Standards 
test.php

HTML1115: X-UA-Compatible META tag ('IE=9') ignored because document mode is already finalized. 
test.php

これは私のコードを完全に台無しにしますtest.php

質問

私はすでに使用して<!DOCTYPE html><html><head><meta http-equiv="X-UA-Compatible" content="IE=9">いますが、PHP header() を使用してリダイレクトすると問題が発生すると推測しています。

PHP header() を使用してユーザーをリダイレクトするときに IE9 が quirks モードにならないようにする方法はありますか?

追加情報

Quirks モードに移行し、Standard モードに戻ると、ページ上のコードが壊れているようです。

ユーザーは test.php で開始し、captcha で送信をクリックします。これは、verify.php に POST されます - これは<?php if (condition){ change some session variables; header(etc); exit();} ?>最初にあります。

4

2 に答える 2

0

phpヘッダーの代わりにphpを使用してメタリフレッシュリダイレクトをエコーすると、問題が修正されたようです。すべてのコードが機能し、クァークズモードに戻ってIE9モードに戻ることはなく、メタは無視されません。

追加情報

私はソフトウェア/ウェブプログラマーと個人的に話しましたが、彼はこのエラーが発生した理由をすぐには知りません。ただし、彼の意見では、phpヘッダーの代わりにメタリフレッシュが機能する場合は、代わりにメタリフレッシュを使用しても問題はありません。

于 2013-01-08T18:19:50.153 に答える
0

私はこれについてもう少し考えていて、考えました:

IE9は、で始まらないページに対してクァークズモードにジャンプします<!DOCTYPE>

リダイレクトは、header(...)その後もページとして表示される出力を持つことができます。

したがって...header()送信後に出力があり、その出力が有効なもので始まらない場合<!DOCTYPE>、IE9はクァークズモードにジャンプする可能性があります。

PHPでは、これは、コードが呼び出し後に実行され続けheader()、後続のコードの何かが何らかの出力を生成する場合に発生する可能性があります。

これが起こっていることであり、リダイレクト後にコードを実行し続ける必要がない場合(これは珍しいことです)、die();直後に呼び出しを追加するとheader()修正されます。

お役に立てば幸いです。

于 2013-01-11T13:43:30.410 に答える