问题
Here's the snippet of code that won't validate:
if (user_age > 15 && user_age < 91)
It gets the following errors:
XML Parsing Error: StartTag: invalid element name
and
XML Parsing Error: xmlParseEntityRef: no name
The first error is thrown for the "less than" and the second one is thrown twice, once for each ampersand.
Replacing the above signs with &
and <
validates fine, but of course it completely ruins the function.
回答1:
Or you can protect the script from the xml validation like this:
<script type="text/javascript">
//<![CDATA[
if (user_age > 15 && user_age < 91) {
// do soemthing
}
//]]>
</script>
回答2:
Move script to other file :)
It is standard (and good) habit to separate style (into .css
file), data (.html
) and of course scripts to .js
file.
回答3:
All Javascript should be CDATA in XHTML:
<![CDATA[
if (user_age > 15 && user_age < 91)
]]>
回答4:
put javascript in <![CDATA[...]]>
section
回答5:
you can try CDATA but some time it wont work, it depends on the setting of the server I guess. I am not a pro, but i tested, and I did not work, but if you put the javascript code in the .js file and then link this file somewhere in your body. it will definitely work. PERSONALLY TESTED.
来源:https://stackoverflow.com/questions/1513871/xhtml-wont-validate-and-in-a-javascript-function