gpt4 book ai didi

javascript - 如何从 JavaScript 读取脚本标签中的 JSON?

转载 作者:IT老高 更新时间:2023-10-28 12:43:38 30 4
gpt4 key购买 nike

我有一个动态生成的页面,我想在其中使用静态 JavaScript 并将 JSON 字符串作为参数传递给它。我已经看到 Google 使用了这种方法(参见 Google's +1 Button: How do they do it?)。

但是我应该如何从 JavaScript 中读取 JSON 字符串呢?

<html>
<head>
<script src="jquery-1.6.2.min.js"></script>
<script src="myscript.js">{"org": 10, "items":["one","two"]}</script>
</head>
<body>
Hello
</body>
</html>

在这个 JavaScript 中,我想使用 HTML 文档中的 JSON 参数 {"org": 10, "items":["one","two"]}。我不知道最好用 jQuery 还是不用。

$(function() {
// read JSON

alert("the json is:")
})

最佳答案

我会将脚本声明更改为:

<script id="data" type="application/json">{"org": 10, "items":["one","two"]}</script>

注释类型和 id 字段。之后

var data = JSON.parse(document.getElementById('data').textContent);

在所有浏览器中都能正常工作。

需要 type="application/json" 以防止浏览器在加载时对其进行解析。

而我们之所以使用 textContent 而不是 innerHTMLinnerText 来读取原始 Json 文本是因为 innerHTML 尝试将内容解析为 HTML,这将导致性能下降并可能出现解析错误和 XSS 攻击,并且 innerText 不会抓取原始文本,而是会寻找人类可见的文本,而textContent 按原样抓取纯文本(这是您想要的)。见 https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent详细了解为什么 innerHTMLinnerText 不好。

关于javascript - 如何从 JavaScript 读取脚本标签中的 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7581133/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com