这个问题在办公室变成了热烈的讨论,所以我有兴趣了解你的想法.
我们正在开发一种仅针对某些特定浏览器的网络应用程序.这些浏览器目前包括不同口味的Opera 9和Mozilla 1.7.12.在未来,我们可能还需要支持Opera 10和不同口味的WebKit.但是,我们不可能不必处理任何版本的IE.
我们的网络应用程序在其doctype中声明HTML 4.0严格.
最近,我提出了在HTML中使用自定义属性的具体问题的解决方案.我提出了一些这样的东西:
<span translationkey="someKey">...</span>
由于这是HTML 4无效的,所以我们的HTML人员并没有很好的下去,而且我们也有了一个争论.
我的问题是:使用自定义属性有什么风险?我知道该页面不会验证,但是并不是所有的浏览器都忽略了他们不知道的属性?或者可以想象,一些浏览器会改变为“怪癖模式”,并将该页面呈现为严格的HTML 4.0以外的页面?
更新:
抱怨实际提出的问题.
解决方法
没有浏览器限制/风险.只有w3验证器会吠叫,但吠叫狗不咬人.
w3 spec说:
- If a user agent encounters an attribute it does not recognize,it
should ignore the entire attribute
specification (i.e.,the attribute and
its value).
IE也不会以怪异的方式呈现,有些人会想.它只会对无效/强制的doctypes做,而不是无效的属性.
但是,请记住,一些Javascript库/框架将“隐形地”添加/使用DOM树中的自定义HTML属性,例如几个jQuery插件.这样,您可能会冒犯属性的冲突,因为“巧合”使用与您自己的目的相同的名称属性.可悲的是,这通常很差甚至没有记录.