3

这是元标记: <meta http-equiv="X-UA-Compatible" content="IE=edge" />

它适用于所有页面,除了 1。

页面正在使用 Coldfusion 进行渲染,包括<cfinclude>并设置在类似于 MVC 的目录结构中。标签被破坏的页面有它自己的控制器(但只显示一个页面),但该控制器与另一个控制器相同。我不确定是什么原因造成的。

页面也采用模块化设计,页面的每个功能都以块的形式导入。每个页面都有自己独特的模块,所以问题出在其中一个块中......我只是不知道那个问题可能是什么。过去几天我一直在梳理模块,但找不到它。

什么可能导致此元标记不起作用?这里的代码粘贴太多,所以我希望有一个答案可以引导我寻找解决方案的方向。我不相信它与Coldfusion有任何关系。

4

3 回答 3

3
  • 首先,正如 drezabek 所说,检查生成的HTML。IE 对特定的元标头特别挑剔。根据我的经验,IE=EDGE标题必须是整个页面上的第一个标题,并且必须是检查 HTML 顶部的第一项<head>,是这样吗?

  • 其次,Coldfusion 对于额外的空白是出了名的麻烦。如果您的文档类型上方有空格,或者有问题的标题可能会导致它出现故障。如有疑问,请始终使用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

看来我错了。事实上,这个问题确实源于 Coldfusion。

由于我没有创建有问题的页面,因此我忽略了一个重要部分。创建它的人正在使用带有验证的 cfform 输入标签。导致 Coldfusion 将其插入到标题末尾的呈现页面中:

<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>

现在我不完全确定这样做会导致元标记中断,但是当我删除导致生成此脚本的模块时,问题就解决了。删除后,文本比较显示两个页面中呈现的标题有 0 个差异。

我通过在 IIS 本身中设置 WebConfig完全解决了我的特定问题。

于 2012-09-24T17:32:34.307 回答