我正在考虑像这样在DOM中嵌入任意JSON:
<script type="application/json" id="stuff"> { "unicorns": "awesome", "abc": [1, 2, 3] } </script>
这类似于将任意HTML模板存储在DOM中以供以后与JavaScript模板引擎一起使用的方式。在这种情况下,我们以后可以检索JSON并使用以下方法进行解析:
var stuff = JSON.parse(document.getElementById('stuff').innerHTML);
这有效,但这是最好的方法吗?这是否违反任何最佳做法或标准?
注意:我不是在寻找在DOM中存储JSON的替代方法,我已经决定这是解决我遇到的特定问题的最佳解决方案。 我只是在寻找最佳方法。
我认为您的原始方法是最好的。HTML5规范甚至解决了这种用法:
“当用于包括数据块(与脚本相对)时,必须以嵌入式方式嵌入数据,必须使用type属性指定数据格式,不能指定src属性,并且必须包含script元素的内容符合为使用的格式定义的要求。”
在这里阅读:http : //dev.w3.org/html5/spec/Overview.html#the-script- element
您已经做到了。什么不是爱?属性数据无需根据需要进行字符编码。您可以根据需要对其进行格式化。它表现力强,预期用途明确。感觉不像是黑客(例如,使用CSS隐藏“ carrier”元素)。这是完全有效的。