JSPX将<! - ?xml version =“1.0”encoding =“UTF-8”? - >添加到页面顶部,导致IE6中出现JS错误

时间:2010-09-11 01:49:42

标签: javascript jsp jspx

当JSPX编译时,它会自动将<?xml version="1.0" encoding="UTF-8"?>添加到文件顶部,这会导致某些JavaScript代码无法在Internet Explorer 6上运行。

如何避免在输出文件中添加<?xml version="1.0" encoding="UTF-8"?>

3 个答案:

答案 0 :(得分:1)

你可以使用

<jsp:output omit-xml-declaration="yes" />

答案 1 :(得分:0)

你做不到。这就是JSPX中“X”所代表的地方。 JSP格式的XML。你基本上有两种选择:

  1. 使用JSP而不是JSPX。这样您就可以输出严格的HTML而不是强制使用XML / XHTML(推荐,除非您真的需要JSPX提供的优于JSP的优势)。

  2. 修复JavaScript代码,使其不会出错。您可以通过 将其从JSPX文件中移出到自己的.js文件中来执行此操作,该文件只包含<script src="file.js"></script>中的<head>(推荐), 将所有特殊/保留的XML字符替换为&等所有特殊/保留的XML字符,如&amp;等XML实体,将所有JS代码放入其中<![CDATA[ ]]>阻止。

答案 2 :(得分:0)

XML声明不会自动导致JavaScript中断。相反,你有JavaScript依赖于HTML的特性,而这些特性在XML中是不成立的。这种假设的一个具体示例是依赖于HTML中(元素)名称的不区分大小写的行为,而不是XML中的区分大小写的行为。