我应该在哪个HTML元素上放置页面全局数据 - *属性?

时间:2014-02-11 21:44:37

标签: javascript html custom-data-attribute

我想将一些数据从服务器传递到浏览器,方法是将它放在数据属性的元素中,如下所示:

<div id="globalvars" data-attr1="val1"></div>

但我觉得应该有比div更好的元素。我想到了body,但我碰巧使用Django模板生成了我的页面,并且在我知道globalvars的值时已经发出body标记。

1 个答案:

答案 0 :(得分:2)

取决于您要传递的数据类型:

对于一个简单的字符串,空<div>上的数据属性可能就足够了。

例如,如果是JSON数据,您可能希望将其作为<script type="text/json">的文本内容放置,并像这样访问它:

<script type="text/json" id="mydata">
    { "your_data": "goes here" }
</script>

<!-- ... -->

<script type="text/javascript">
(function(){
    var data = JSON.parse(document.getElementById('mydata').innerHTML);
    //do stuff with your data
})();

</script>

这是将文本传递给脚本的常用方法,它通常用于模板,但也可用于任意数据。

type="text/json"阻止浏览器评估第一个<script>。该类型属性应该与您计划放置的任何内容相匹配。对于纯文本,您可以使用text/plain。只要它不是浏览器将其解释为实际脚本的类型,它就没问题了。