实体名称无法正常运行

时间:2013-02-06 17:14:25

标签: java html xhtml

尝试将html转换为xhtml,但当我将我的大于号更改为&gt;时,我的if语句不再起作用。与&<符号相同的故事。 Cdata也不起作用。

function length(elem){
    var input = elem.value;
    if(input.length &gt; 8){
        return true;
    }
    else{
        alert("Please enter equal to or more than 8 characters for username");
        return false;
    }
}

2 个答案:

答案 0 :(得分:2)

简单的解决方案:不要使用XHTML。在大多数情况下,它比值得多麻烦。

失败:将JS保存在外部文件中并通过src加载。

如果不这样做,请参阅the compatibility guidelines以编写XHTML,然后将其视为HTML。

答案 1 :(得分:0)

没有理由在HTML,XHTML或XML中“转义”“&gt;”字符,除非您喜欢使用“&lt;”进行对称,这通常需要转义。

在XHTML中,script的内容被视为#PCDATA,这意味着实体引用被识别。所以&gt;可以,但这仅适用于真正将文档处理为XHTML的浏览器;在实践中,您需要声明XML内容类型并接受旧版IE将阻塞它的事实。显然,你没有这样做,所以实际上HTML规则适用,script内容被解析为纯文本,浏览器的JavaScript解释器实际上是&gt;和呕吐。在HTML模式下,无论doctype似乎在说什么,CDATA部分都只是凌乱的数据。

正如@Quentin建议的那样,不要做XHTML。如果您实际上需要使用XHTML,请使用外部脚本。