更改不同<script src =“ path”>标记中的路径的功能

时间:2019-02-14 10:30:36

标签: javascript html

我不确定是否可以访问其他脚本标签的src。

  

<脚本>
//我的功能
 

我想创建一个按钮或类似按钮,将“ ./data.json”更改为其他内容,然后重新加载页面。

2 个答案:

答案 0 :(得分:0)

这是一个肮脏的示例,说明如何使用访存来从json数据实时更新表中的数据(为便于示例)。您可以轻松地使其适应您的需求(但不要使用字符串来创建html,而应使用document.createElement等...

const url = "https://randomuser.me/api/?results=10"; // returns json data

function getData() {
  fetch(url).then(res => res.json()).then(({
    results
  }) => {
    const body = document.querySelector('#foo tbody');
    body.innerHTML = "";
    results.forEach(({
      name
    }) => {
      const strHTML = `<tr><td>${name.title}</td><td>${name.last}</td><td>${name.first}</td></tr>`;
      body.innerHTML += strHTML;
    })
  });
}
getData();
setInterval(getData, 2000);
<table id="foo">
  <thead>
    <th>gender</th>
    <th>name</th>
    <th>firstName</th>
  </thead>
  <tbody>
  </tbody>
</table>

答案 1 :(得分:-1)

我不知道您为什么要更改src属性,以及为什么还要重新加载页面。更改src属性不会更改脚本。您必须改为使用新的src创建一个新的脚本元素。将id属性添加到脚本标签。使用该ID选择脚本标签,将其删除并创建一个新脚本。

HTML

<script id="x" src="./data.json"></script>

JavaScript

var oldScript = document.getElementById("x");
oldScript.parentElement.removeChild(oldScript);

var newScript = document.createElement("script");
newScript.src = "something else";
document.body.appendChild(newScript);

如果您需要永久更改src属性(以使更改在重新加载页面后生效),则应使用一些能够读取/写入本地文件的服务器端技术。