3

これはメタタグです: <meta http-equiv="X-UA-Compatible" content="IE=edge" />

1を除くすべてのページで機能します。

ページは、coldfusion のインクルードを使用してレンダリングされ、<cfinclude>MVC と同様のディレクトリ構造でセットアップされます。タグが壊れているページには独自のコントローラーがありますが (ただし、1 つのページしか表示されません)、そのコントローラーは他のコントローラーと同一です。何が原因なのかわかりません。

ページは、ページの各機能がチャンクでインポートされるモジュール設計でもセットアップされます。各ページには独自のモジュールがあるため、問題はそれらのチャンクの 1 つにあります........その問題が何であるかはわかりません。ここ数日、モジュールをくまなく調べていますが、見つかりません。

このメタ タグが機能しない原因は何ですか? ここにはコードの貼り付けが多すぎるため、解決策を探す方向に導くことができる回答を期待しています。コールドフュージョンとは関係ないと思います。

4

3 に答える 3

3
  • まず、drezabek が述べたように、結果のHTML を調べます。IE は、その特定のメタ ヘッダーについて特にうるさいです。私の経験から、IE=EDGEヘッダーはページ全体の一番最初のヘッダーである必要があり、<head>HTML の確認の一番上にある最初の項目でなければなりません。そうですか?

  • 第 2 に、Coldfusion は余分な空白について厄介なことで有名です。doctype の上に空白がある場合、または問題のヘッダーに空白があると、誤動作する可能性があります。疑わしい場合は、常にoutput='false'すべての関数で使用してくださいcfscript。さらに、一部のネイティブ CF メソッドでも空白が追加されます。たとえば、ORM オブジェクトをシリアル化するSerializeJSON(EntityLoad('blah'))と、空白がスローされることがわかります。喜び。

于 2012-09-24T05:12:07.730 に答える
2

答えは HTML 内にある必要があります。機能するページと機能しないページのソースを表示し、問題を引き起こす可能性のある違いを探してみてください。見つからない場合は、ソースをここに投稿してください。

HTMLは本当に重要です。それができたら、不正な HTML の原因となっている関数を見つけるのは簡単です。

于 2012-09-24T03:19:20.043 に答える
0

It seems that I was wrong. The issue does in fact stem from Coldfusion.

Since I did not create the page that was having the issue, I overlooked an important part. The person who created it was using the cfform input tags with verification. The caused Coldfusion to insert this into the rendered page at the end of the header:

<script type="text/javascript"> 
<!--
    _CF_checkeditUserInfo = function(_CF_this)
    {
       //reset on submit
       _CF_error_exists = false;
       _CF_error_messages = new Array();
       _CF_error_fields = new Object();
       _CF_FirstErrorField = null;


       //display error messages and return success
       if( _CF_error_exists )
       {
           if( _CF_error_messages.length > 0 )
           {
               // show alert() message
               _CF_onErrorAlert(_CF_error_messages);
               // set focus to first form error, if the field supports js focus().
               if( _CF_this[_CF_FirstErrorField].type == "text" )
               { _CF_this[_CF_FirstErrorField].focus(); }

           }
        return false;
       }else {
           return true;
       }
   }
//-->
</script>

Now I'm not entirely sure what this is doing to cause the meta tag to break, but when I remove the module that causes this script to be generated, the issue is fixed. When that is removed text compare shows that the rendered headers in both pages have 0 differences.

I completely fixed my specific issue by setting the WebConfig in IIS itself.

于 2012-09-24T17:32:34.307 に答える