为什么我的ie条件注释导致编译错误时不通过Response.Write添加

本文关键字:Response 添加 Write 错误 编译 ie 我的 条件 注释 为什么 | 更新日期: 2023-09-27 17:54:16

我有一个有条件注释的页面:

<%@ Page language="c#"  %>
<html>
  <head>
    <title>ASP.NET Application</title>
    <!--[if lt IE 8]><script type="text/javascript" src="scripts/json_parse.js"></script><![endif]-->
  </head>
  <body>
    test
  </body>
<html>

当我像上面那样做时,它抛出一个编译错误,说它需要一个结束的"script"标记。但是下面的代码(应该以相同的页面结束)可以完美地工作:

<%@ Page language="c#"  %>
<html>
  <head>
    <title>ASP.NET Application</title>
    <!--[if lt IE 8]>
    <% Response.Write( "<script type='"text/javascript'" src='"scripts/json_parse.js'"></script>" ); %>
    <![endif]-->
  </head>
  <body>
    test
  </body>
<html>

为什么IE条件句有问题?script标签位于注释内,而不是"runat"。

为什么我的ie条件注释导致编译错误时不通过Response.Write添加

在这种情况下,您希望条件注释显示给底层浏览器,而不是被上层浏览器隐藏,因此使用的语法略有不同:

<![if lt IE 8]>
<script type="text/javascript" src="scripts/json_parse.js"></script>
<![endif]>