1

広範な調査により、以下が発生する理由を理解することができませんでした-SOコミュニティが役立つことを願っています...

Why HTML1113: Document mode restart from IE9 Standards to Quirksに記載されているファイルをローカル ファイル システムにコピーし、 ( D:\...URL バーにパスを指定して) IE9 で xml を開きました。
驚いたことに、ウェブ版を開くのとはかなり挙動が異なります。
これで、「マイ コンピュータ」ゾーンの設定がインターネット ゾーンの設定とは異なるため、以下のポップアップ ウィンドウが説明されることは理解できましたが、なぜ結果が異なるのか、なぜ quirks モードが自動的に選択されないのかがわかりません。 Web で xml を開きます。

ローカル ファイルを開くと、次のようになります。

AllowScripts

これは間違いなく、ローカル ゾーンの設定が原因です。次に、ブラウザー モードは IE9 (以前のように auto quirks ではありません) であり、XSLT の適用に失敗します。

XSLT8690

AllowXsltScript最初はMSXML6 DOMの基本設定がtrueに設定されていないなどの原因かと思っていたのですが、web版を開けば問題なく動作するのでよくわかりません。
では、なぜローカルのものは失敗するのでしょうか?

見知らぬ人でも、Web バージョンを開くと自動 quirks モードになり、正しい結果が得られましたが、ローカル ファイルの quirks モードに切り替えると、MSXML6 DOM オブジェクトで失敗します。実際には、これはエラーがないよりも理にかなっています。おそらく MSXML3 のみを提供します (またはそれのみを提供する必要があります-しかし、なぜ Web バージョンの自動癖は OK でしたか?)。

癖1

受け入れた後、に変わります

癖2

ここで、IE9 標準モードを再度選択すると、

IE9take2_console

そして結果は予想通り

IE9take2

ローカル ファイルを使用する場合のイベントの説明 (ゾーン設定の違いを除く):

  1. IE9 標準モード XSLT8690 エラー
  2. quirks モードへの切り替えエラー
  3. IE9 標準モードに戻しても問題ありません

Web版を開いたときのイベントを暗唱(ゾーン設定による違いは別として):

  1. 癖モードを自動的に
  2. ページは quirks で正しく開きます - どうやら MSXML6 はここでも auto quirks モードで使用されています
  3. IE9標準モードへの切り替えもOK
  4. 上記の quirks モードのエラーに戻ります (「パラメーターが正しくありません」)。

これらすべての独特の違いを引き起こしているのは何ですか?

4

1 に答える 1

2

これは私に少し時間がかかりましたが、私はそれを持っています!

Paul Sweatteのコメントにより、すでにグラフ化された多くの海域だけでなく、未知の海域もいくつか見つかりましたが、最終的には、レジストリを介してIE9 My Computerゾーンのセキュリティ設定を直接実験し始めましたが、残念ながら役に立たなかったのです。 [インターネットオプション]ポップアップウィンドウが再び表示され、セキュリティ設定が更新される可能性のある場所が複数あることに気付きました.....

ゾーンに関連しないすべてのIE9設定を調べて、[詳細設定]タブを選択し、セキュリティサブセクションで有望なチェックされていない設定に遭遇しました。

Allow active content to run in files on My computer

これを変更すると(この場合はにchecked)再起動する必要がありますが、ローカルxmlファイルを実行して再度開くと、Webファイルと同じように突然動作しましたquirks mode。正しく開きました。また、IE9標準モードに切り替えてクァークズモードに戻すと、Webモードと同じ動作が得られました。また、「スクリプトは通常安全です」というポップアップ警告はもうありませんでした。

これで、エラーが発生する理由が説明されXSLT8690ます。xslt、またはそこにあるjavascriptだけがと見なされますactive content

物語の終わり?
この質問についてはそうですが、なぜ自動クァークモードはOKなのに、手動で選択したクァークはそうではないのか疑問に思います。
最初の実行では、quirksへの自動切り替えが行われる前にxsltが処理され、その時点で、結果ページがすでに使用可能になっているため、MSXML6は不要になっていると思われます。ただし、xmlをquirksモードで開くと、xsltをquirksモードで実行しようとしますが、MSXML6ではなくMSXML3が使用可能であるため実行できません。

于 2012-05-12T21:30:08.633 に答える