java实体名称无法正常工作
尝试将html转换为xhtml,但当我将大于号更改为>
时,我的if语句不再有效。用&
和<
符号表示相同的故事。Cdata也不起作用
function length(elem){
var input = elem.value;
if(input.length > 8){
return true;
}
else{
alert("Please enter equal to or more than 8 characters for username");
return false;
}
}
# 1 楼答案
没有理由“逃避”>字符,在HTML、XHTML或XML中,除非为了与“<;对称而这样做,这通常需要逃脱
在XHTML中,
script
的内容被视为#PCDATA
,这意味着实体引用被识别。所以>
是可以的,但这只适用于真正将文档作为XHTML处理的浏览器;实际上,您需要声明一个XML内容类型,并接受旧版本的IE会被它阻塞的事实。显然,你没有这样做,所以实际上HTML规则是适用的,script
内容被解析为纯文本,浏览器的JavaScript解释器得到字面上的>
和呕吐物。在HTML模式下,不管doctype看起来是怎么说的,CDATA
节都是混乱的数据所以正如@Quentin所建议的,不要使用XHTML。如果实际上需要使用XHTML,请使用外部脚本
# 2 楼答案
简单的解决方案:不要使用XHTML。在大多数情况下,这比它的价值要麻烦得多
失败:将JS保存在外部文件中,并通过
src
加载它们如果做不到这一点,请参阅the compatibility guidelines以编写XHTML,然后将其作为HTML处理