Javascript 对于html数据存储,我需要记住什么兼容性?

Javascript 对于html数据存储,我需要记住什么兼容性?,javascript,html,Javascript,Html,根据可以在html标记中存储数据的说法,现在我的DOCTYPE标题如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 编辑:我的标题的原因是我正在添加到现有的intranet系统中,他们对每个页面都使用相同的标题,这是在HTML5之前(理想情况下,我会使用HTML5) 编辑2:我很清楚我应该使用data-作为属性的前缀,但

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
编辑:我的标题的原因是我正在添加到现有的intranet系统中,他们对每个页面都使用相同的标题,这是在HTML5之前(理想情况下,我会使用HTML5)

编辑2:我很清楚我应该使用
data-
作为属性的前缀,但是我可以使用
console.log(document.getElementById(“myForm”).getAttribute(“输出文件”)
很好,得到正确的结果,我想有人会注意到这一点,并解释可能存在的跨/向后兼容性问题

为什么要使用过渡文档类型?为什么不严格

总之,要回答您的问题,您可以使用HTML存储,但您应该掌握正确的语法:

<form name="myForm" id="myForm" data-output-file="export.log">
这是一篇优秀的文章:

编辑

data-*
属性的使用在所有现代浏览器中都得到了很好的支持,甚至可以追溯到IE。您不会遇到任何兼容性问题

要回答另一个问题,请使用
数据-*
前缀:

  • 在以后添加新的html属性时不会遇到任何问题。
    HTML5
    标准为此专门留出了
    data-*
    名称空间
  • 到时候,您将能够使用它,而不是hacky
    setAttribute
    getAttribute
编辑2

  • 这种方法可以追溯到IE6
  • 如果不使用数据前缀,则可能会与稍后出现的新HTML5属性发生冲突

出于兴趣,您为什么选择HTML 4.01过渡doctype(从1999年开始?)当您选择该类型时,我很想了解您的思路。这并没有回答我的问题,我想知道我应该记住什么交叉/向后兼容性,因为
console.log(document.getElementById(“myForm”).getAttribute(“output file”)
输出我所期望的内容,而您的链接只讨论HTML5,除非我所做的只是严格意义上的HTML5(因此我的DOCTYPE被忽略)我知道使用
数据-
是正确的,但是你的问题没有解释忽略
数据-
前缀会导致什么问题,这又回到了我的问题,即我应该记住什么样的交叉/向后兼容性(例如,没有
数据-
前缀会使其在IE6上无效)@Memor-X,如果你有
数据-
前缀,使其在HTML5中有效,在所有以前版本的HTML中无效。如果你没有
数据-
前缀,使其在所有版本的HTML(包括5)中无效。但是浏览器是宽松的,不会打扰到他们;这是未来的兼容性,你将使用
数据获取-
-使用
HTML4.01过渡版
会让你感到交叉/向后兼容性的头疼,因为它会让现代浏览器进入怪癖模式。
<form name="myForm" id="myForm" data-output-file="export.log">
var el = document.getElementById("myForm");
var filename = el.getAttribute("data-output-file");
el.setAttribute("data-output-file", "newName");