javascript - 如何更新 HTML 脚本标记中嵌入的数据?

标签 javascript html

我有一个简单的 html 页面,脚本标记中嵌入了 Json-ld 数据。

如何在提交表单时更新此数据?

这是页面的一些代码(数据+加载函数)。我缺少的是 saveData 函数,它更新脚本部分中嵌入的数据。

谢谢,

    <script id="person" type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Person",
  "givenName": "Marco",
  "familyName": "Van Basten"
}
</script>
<script>
function loadData() {

  var person = document.getElementById("person").textContent;
  var jsonld = JSON.parse(person);


  document.getElementById("givenName").value = jsonld.givenName;
  document.getElementById("familyName").value = jsonld.familyName;

}

最佳答案

以下代码片段仅作为示例,但应该向您展示如何使用 JSON.stringify 使用 JSON 字符串更新脚本对象。

  person.innerHTML = JSON.stringify(jsonld);

使用“加载”加载原件。更改值,然后再次保存并加载。 使用浏览器开发者工具观察 DOM 的值。

function loadData(e) {

  var person = document.getElementById("person");
  var jsonld = JSON.parse(person.textContent);
  console.log(jsonld.givenName, jsonld);

  document.getElementById("givenName").value = jsonld.givenName;
  document.getElementById("familyName").value = jsonld.familyName;

}

function saveData(e) {
  console.log('event', e);
  var person = document.getElementById("person");
  var jsonld = JSON.parse(person.textContent);
  
  jsonld.givenName =document.getElementById("givenName").value;
  jsonld.familyName =document.getElementById("familyName").value;
  
  //person.innerHTML = JSON.stringify(jsonld);
  person.textContent = JSON.stringify(jsonld);
}

document.getElementById("saveButton").addEventListener('click', saveData);
document.getElementById("loadButton").addEventListener('click',loadData);
<script id="person" type="application/ld+json">
  { "@context": "http://schema.org", "@type": "Person", "givenName": "Marco", "familyName": "Van Basten" }
</script>
<form>
  <input type="text" id="givenName" />
  <input type="text" id="familyName" />
</form>
<button id="loadButton">Load</button>
<button id="saveButton">Save</button>

关于javascript - 如何更新 HTML 脚本标记中嵌入的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29104708/

相关文章:

javascript - 将按钮的实例传递给它的 onclick 函数 jquery

css - 尽管内联 block ,2 个子 div,第二个子 div 进入新行

javascript - 如何检查至少一项输入是否完成?

javascript - 在 JavaScript 中重新初始化 json 变量

javascript - dc.js使用两个没有简单尺寸和第二分组阶段的化约器

javascript - 解构或赋值运算符

html - CSS 样式未显示在 Django 应用程序中

javascript - 如何将参数传递给在 addEventListener 中使用的函数?

html - 变换 :rotate not working in IE with a masterpage

javascript - 如何在 angularJS 中使用 ng-if