我想将一些数据从服务器传递到浏览器,方法是将它放在数据属性的元素中,如下所示:
<div id="globalvars" data-attr1="val1"></div>
但我觉得应该有比div
更好的元素。我想到了body
,但我碰巧使用Django模板生成了我的页面,并且在我知道globalvars的值时已经发出body
标记。
答案 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
。只要它不是浏览器将其解释为实际脚本的类型,它就没问题了。