1
|
Tim has moved to Codidact · 技术社区 · 16 年前 |
1
2
在客户机上捕获解析错误可能是可能的,但它确实解决了错误的问题。 我知道这不是您所要求的,但是除非您正在做一些真正特定于XHTML的事情,比如嵌入其他标记语言,否则您应该将页面作为文本/HTML而不是application/xhtml+xml提供服务。即使是XHTML。通过将其作为文本/html提供,您可以避免遇到的问题,并允许您的页面在IE中工作。注意,决定使用哪种解析器的是mime类型,而不是doctype声明——使用过渡doctype不会做到这一点。 也就是说,如果您确实希望将页面解析为XHTML,那么最好在服务器上处理此类错误。通过构建一个DOM来生成页面,然后发送序列化结果。如果这不是一个选项,那么从生成页面开始,就像现在一样,但不要将其传输到客户机。以您生成的XHTML为例,使用验证XHTML解析器(或者至少是通用XML解析器)在服务器端解析它。如果出现错误,请显示所需的错误页。否则,序列化解析的DOM并将其发送给客户机。 总之,使用application/xhtml+xml的基本规则是:
记住,XHTML只是HTML4的一种重新表述,加上嵌入其他语言的能力。如果您不使用嵌入,那么您所拥有的是具有不同但几乎完全兼容语法的HTML4。绝大多数XHTML文档都是作为文本/HTML提供的,因此浏览器将其视为HTML 4。 |
2
1
这并不能回答您的问题,但是,为什么不在您的服务器上验证您的XHTML,在您生成XHTML之后/何时以及在您将其发送到浏览器之前? |
3
1
我的第一个问题是:由于Internet Explorer不容易允许您将application/xhtml+xml实际指定为mime类型,也不太支持它,为什么需要检测xhtml解析错误? 至于检测错误-看一下 http://www.quirksmode.org |
4
1
我建议在服务器端验证文档。但是,如果您真的想在客户机端执行此操作,那么如果正确执行了轮询,就不会有任何错误(这意味着该轮询肯定会终止)。 以下 应该 至少在Firefox和Opera中工作:
|
5
0
我知道这可能不是最有用的答案,但是你考虑过转换成一个过渡的doctype吗? 无论如何,把你的文件通过一个解析器来检测错误,但是离线操作——向用户展示ysod的风险是不值得的! |
badcop666 · 防止Azure Web日志中的HTML错误内容 7 年前 |
OjamaYellow · 登录Angular2 7 年前 |
malinchhan · 通过存折web服务参考记录错误我要做什么 11 年前 |
Sean · 正在文件中收集警告和错误日志? 12 年前 |