当前位置:  开发笔记 > 编程语言 > 正文

使用自定义HTML属性的具体风险是什么?

如何解决《使用自定义HTML属性的具体风险是什么?》经验,为你挑选了3个好方法。

这个话题在办公室变成了激烈的讨论,所以我很想知道你的想法.

我们正在开发一个仅针对某些特定浏览器的网络应用.这些浏览器目前包括不同风格的Opera 9和Mozilla 1.7.12.在未来,我们可能还需要支持Opera 10和不同版本的WebKit.但我们不太可能不得不处理任何版本的IE.

我们的网络应用程序在其doctype中声明HTML 4.0严格.

最近,我提出了在HTML中使用自定义属性作为特定问题的解决方案.我提出了一些看起来像这样的东西:

...

由于这不是有效的HTML 4,它与我们的HTML人员并没有很好地相关,我们陷入了争论.

我的问题是:如果有的话 - 使用自定义属性的风险是什么?我知道页面不会验证,但是并非所有浏览器都忽略了他们不知道的属性?或者可以想象一些浏览器会改为"quirks模式"并将页面呈现为严格的HTML 4.0之外的其他内容

更新:

Hilited提出的实际问题.



1> BalusC..:

没有浏览器限制/风险.只有w3验证器会吠叫,但吠叫狗不会咬人.

在W3规范说以下内容:

如果用户代理遇到它无法识别的属性,则应忽略整个属性规范(即属性及其值).

有些人可能会认为,IE也不会以怪癖模式呈现.它只会对无效/强制文档类型执行此操作,而不会对无效属性执行此操作.

但是,请记住,一些Javascript库/框架将"无形地"在DOM树中添加/使用自定义HTML属性,例如几个jQuery插件.这样,您可能会冒着属性冲突的风险,因为"巧合"会使用与您自己的目的相同的属性.遗憾的是,这通常很糟糕甚至没有记录.



2> stuartd..:

HTML 5允许使用'data-'前缀的自定义属性,请参阅http://ejohn.org/blog/html-5-data-attributes/



3> MikeEL..:

如果它的目标是保持有效的html4.0严格,那么为什么要放入自定义属性并不重要,你就是打破了目标.

我认为你需要问的问题是,为什么你需要打破4.0严格来获得你想要的功能:你可以使用自定义属性的任何东西,你可以在现有属性中使用a:

...

可能:

...

解析所有类信息将是一些额外的周期,但只要你不在该类上放置任何css信息,它就不会改变显示,不会让你处于怪癖模式,也不会得到你在工作中打架.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有