元标记在一个页面上不起作用但在所有其他页面上起作用?

时间:2012-09-21 21:01:25

标签: html css coldfusion

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

它适用于除1以外的所有页面。

正在使用包含<cfinclude>的coldfusion呈现页面,并在类似于MVC的目录结构中进行设置。标签被打破的页面有它自己的控制器(但只显示一个页面),但该控制器与另一个控制器完全相同。我不确定是什么原因引起的。

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

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

3 个答案:

答案 0 :(得分:3)

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

    < / LI>
  • 其次,Coldfusion因额外的空白而出了名的麻烦。如果您的doctype上方有空格,或者可能是相关标题,则可能导致其出现故障。如有疑问,请始终在所有功能上使用output='false',甚至是cfscript功能。此外,甚至一些原生CF方法也会添加空格。例如序列化一个ORM对象SerializeJSON(EntityLoad('blah')),你会看到它抛出一些空格。喜悦。

答案 1 :(得分:2)

答案必须在HTML中。查看有效页面的源代码和不可用的页面的源代码,并尝试查找可能导致问题的差异。如果你找不到它,可以在这里发布消息来源吗?

HTML确实是关键。完成后,找到导致错误HTML的函数应该很容易。

答案 2 :(得分: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个差异。

我完全按setting the WebConfig in IIS itself修正了我的具体问题。