Firefox在呈现错误的HTML时有一定的容忍度.这意味着即使遗漏了结束标记,HTML也会显示为好像一切正常.当使用JavaScript操作或添加当前页面中的内容时,此容差方面尤其重要.
由于我使用Firefox作为我的主要测试/开发浏览器,我不止一次受到这种行为的困扰,其后果是“更严格”浏览器中的功能丧失.例如,由于添加的内容上提到的缺少标记,Microsoft Internet Explorer中的相同代码无法生成任何可见输出.
现在的问题是,有没有办法告诉Firefox对接受的HTML更加严格而失败而不是“猜测修复”(特别是在通过JavaScript添加HTML时)?
PS:我试过玩DOCTYPE,结果是一样的.
最佳答案
所有解析器在某种程度上都是宽容的.大多数主流网站都有错误(并不是说这让它变得难以理解,只是说).如果使用附加的调试器进行开发,则可以更快地捕获脚本错误.我还通过在构建过程中使用minifier来捕获脚本错误(在主要语法问题上将失败).我使用Visual Studio 2010的实时警告(并不总是完美的)来验证我的HTML标记,并定期使用w3验证器服务.
对于浏览器的选择,我通常会全面开发;在一次坐下我可以在IE7 / 8/9模式,Chrome和Firefox之间切换.如果涵盖上述浏览器,Safari和Opera通常可以工作.这样我就不会走错路.
顺便说一句,DOCTYPE很重要(即使它看起来并不总是如此).