对于html数据存储,我需要记住哪些兼容性?

时间:2014-06-18 05:41:06

标签: javascript html

根据this question,可以在html标记中存储数据,现在我的DOCTYPE标题如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

我想知道我应该记住哪些交叉/向后兼容性,例如,如果我尝试使用javascript访问某个浏览器中的output-file属性,那么哪些版本的浏览器会出现问题表格标签。 E.g。

<form name="myForm" id="myForm" output-file="export.log">
编辑:我的标题的原因是我正在添加到现有的内部网系统上,并且他们对每个页面都使用相同的标题,它在HTML5之前就已存在(理想情况下我想要使用它)

编辑2:我很清楚我应该使用data-作为我的属性的前缀但是我可以使用console.log(document.getElementById("myForm").getAttribute("output-file"))就好了并得到正确的结果,我想有人会接受这个以及解释可能的问题交叉/向后兼容性

1 个答案:

答案 0 :(得分:2)

为什么HECK使用的是过渡性文档类型?为什么不严格?

无论如何 - 回答你的问题,是的,你可以使用HTML存储,但你应该正确的语法:

<form name="myForm" id="myForm" data-output-file="export.log">

请注意使用data-前缀。

您可以在javascript中阅读:

var el = document.getElementById("myForm");
var filename = el.getAttribute("data-output-file");
el.setAttribute("data-output-file", "newName");

这是一篇很好的文章:
http://webdesign.tutsplus.com/tutorials/all-you-need-to-know-about-the-html5-data-attribute--webdesign-9642

修改

所有现代浏览器都支持使用data-*属性,甚至可以追溯到IE。你不会在那里遇到任何兼容性问题。

要回答另一个问题:使用data-*前缀:

  • 稍后会添加新的html属性,以解决任何问题。 HTML5标准专门为此目的预留了data-*命名空间。
  • 及时,当<element>.dataSet时,您可以使用它而不是hacky setAttributegetAttribute

编辑2

  • 此方法一直可以回到IE6。
  • 如果您不使用数据前缀,则可能会遇到与以后出现的新HTML5属性冲突的风险。