0

尝试将 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;
    }
}
4

2 回答 2

2

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

失败:将您的 JS 保存在外部文件中并通过src.

如果做不到这一点,请参阅编写 XHTML 并将其视为 HTML的兼容性指南。

于 2013-02-06T17:21:37.040 回答
0

在 HTML、XHTML 或 XML 中,没有理由“转义”“>”字符,除非您为了与“<”对称而这样做,通常需要转义。

在 XHTML 中, 的内容script被视为#PCDATA,这意味着实体引用被识别。&gt;可以,但这仅适用于真正文档处理为 XHTML 的浏览器;在实践中,您需要声明一个 XML 内容类型并接受旧版本的 IE 会阻塞它的事实。显然,您没有这样做,因此实际上 HTML 规则适用,script内容被解析为纯文本,并且浏览器的 JavaScript 解释器得到字面意思&gt;并呕吐。在 HTML 模式下,无论 doctype 看起来是什么意思,CDATAsection 都是杂乱无章的数据。

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

于 2013-02-06T18:23:00.857 回答