小编典典

HTML标签上的非标准属性。好东西吗 坏事?你的想法?

javascript

当涉及到标签上的非标准属性时,HTML(也许只是XHTML?)相对严格。如果它们不是规范的一部分,那么您的代码将被视为不符合规范。

但是,非标准属性对于将元数据传递到Javascript可能非常有用。例如,如果假设链接显示弹出窗口,则可以在属性中设置弹出窗口的名称:

<a href="#null" class="popup" title="See the Popup!" 
   popup_title="Title for My Popup">click me</a>

或者,您可以将弹出窗口的标题存储在一个隐藏元素中,例如跨度:

<style>
    .popup .title { display: none; }
</style>
<a href="#null" title="See the Popup!" class="popup">
    click me
    <span class="title">Title for My Popup</span>
</a>

但是,我对于应该采用哪种方法感到不满意。第一种方法更简洁,我猜想,它不会像搜索引擎和屏幕阅读器那样费劲。相反,第二种选择使存储大量数据更加容易,因此用途更广。它也符合标准。

我很好奇这些社区的想法。您如何处理这种情况?第一种方法的简单性是否大于潜在的缺点(如果有的话)?


阅读 549

收藏
2020-05-01

共1个答案

小编典典

我是提议的HTML
5解决方案(带data-前缀的属性)的忠实拥护者。编辑:我想补充一点,也许有更好的例子来使用自定义属性。例如,自定义应用程序将使用的数据在标准属性中没有类似物(例如,基于不一定以className或id表示的内容对事件处理程序进行自定义)。

2020-05-01