今天看到个问题
我不是行业从业者,但目前遇到一个问题
我公司网站为纯静态,除了直接从html里修改文字外能不能这样
建立一个xml或者txt文档,其中有很多信息,例如网站名称,电话,备案号等,一行一行的
我从html里通过什么代码能读取这个xml里指定的内容显示到相应的位置,例如title里等;
这样后期有其他需求,我直接修改这个xml即可,求帮助
这种对于数据安全性不是特别高的纯静态网站中,使用JavaScript来读取JSON文件并在HTML页面中动态显示数据是比较常见做法。这种方法允许你将数据和表示层分离,使得维护和更新变得更为简单。下面举一个简单的例子,来看看怎么在HTML中使用JavaScript读取JSON文件并显示数据,达到动态更新的目的。
首先,创建一个JSON文件(例如data.json),内容如下:
{"siteName": "我的公司","phone": "123-456-7890","recordNumber": "ICP备12345678号"
}
然后,在你的HTML文件中,可以使用以下JavaScript代码来读取JSON文件并显示数据:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>window.onload = function() {fetch('data.json').then(response => response.json()).then(data => {document.title = data.siteName;document.getElementById('site-name').textContent = data.siteName;document.getElementById('phone').textContent = data.phone;document.getElementById('record-number').textContent = data.recordNumber;}).catch(error => console.error('Error:', error));}</script>
</head>
<body><h1 id="site-name"></h1><p>电话: <span id="phone"></span></p><p>备案号: <span id="record-number"></span></p>
</body>
</html>
在这个例子中,我们使用了fetch API来异步获取JSON数据。当数据被成功解析后,我们使用DOM操作将数据插入到相应的HTML元素中。
如果是数组的话,可以按照下面的代码来参考
{"siteName": "我的公司","phone": "123-456-7890","recordNumber": "ICP备12345678号","news": [{"title": "新闻标题一","date": "2023-07-18","summary": "这是新闻一的摘要描述..."},{"title": "新闻标题二","date": "2023-07-17","summary": "这是新闻二的摘要描述..."}]
}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title><span id="site-name"></span></title><style>#news-list li {margin-bottom: 1em;}</style><script>window.onload = function() {fetch('data.json').then(response => response.json()).then(data => {document.title = data.siteName;document.getElementById('site-name').textContent = data.siteName;const newsList = document.getElementById('news-list');data.news.forEach(news => {const item = document.createElement('li');item.innerHTML = `<h2>${news.title}</h2><span>${news.date}</span><p>${news.summary}</p>`;newsList.appendChild(item);});}).catch(error => console.error('Error:', error));}</script>
</head>
<body><h1 id="site-name"></h1><ul id="news-list"><!-- 新闻列表将在这里动态生成 --></ul>
</body>
</html>
效果如下