没有分号

5 html

我一直在web应用程序中使用prototype.js.我在选择一些单选按钮时动态填充一些Div.在填充Div中的内容之前,我使用原型的更新方法清除以前的内容 -

$('item').update('');
Run Code Online (Sandbox Code Playgroud)

在IE中,这会自动换行,但在Firefox 3.5中则不行.因此,为了以与IE相同的方式工作,我将代码更改为 -

$('item').update('&nbsp');
Run Code Online (Sandbox Code Playgroud)

现在,这对我有用.但是,通常" "与分号一起使用($ nbsp;).我想知道,如果这段代码可能出现故障.例如,是否有机会显示而不是空格?但是有些浏览器可能足够聪明,可以通过程序员检测编码错误并自动更正错误.

Gum*_*mbo 13

结尾分号可以省略,但绝对不推荐.请参阅HTML 4规范中有关字符引用的注释:

在SGML中,可以消除最终的";" 在某些情况下(例如,在换行符处或在标签之前),在字符引用之后.在其他情况下,它可能不会被消除(例如,在一个单词的中间).我们强烈建议使用";" 在所有情况下,以避免出现需要此字符的用户代理的问题.


S.L*_*ott 8

永远不要依赖浏览器自动更正或"推荐"行为.

如果你的代码是错的,那么(a)它是错的,(b)浏览器可以自由地与它做不一致的事情.

  • @Saurabh:当你可以预测*所有*未来的浏览器实现时,你会看到它将在哪里突破.直到你可以预见*所有*未来的浏览器,你必须假设错误是错误的,并最终会破坏并导致你没有预见到的问题.您的测试用例(IE和FireFox)甚至不包括*所有*当前的浏览器实现.不要希望错误的事情会起作用.只需修复它们. (4认同)