所以,我有一个标签,我想填写文字。这个文本在几个页面上是相同的,我希望能够对这个文本进行更改,而无需单独编辑每个页面。
我可以使用javascript和WebStorage做到这一点,但它似乎不是最好的解决方案。有没有其他方法可以做到这一点?
我想避免为此使用sql server。请在下面的小提琴中查看我的工作代码。
工作代码:
<div id="1"></div>
<div id="2"></div>
<div id="3"></div>
<div id="4"></div>
<script>
// Check browser support
if (typeof(Storage) !== "undefined") {
// Store
localStorage.setItem("11", "some text1");
localStorage.setItem("22", "some text2");
// Retrieve
localStorage.setItem("33", "some text3");
localStorage.setItem("44", "some text4");
document.getElementById("1").innerHTML = localStorage.getItem("11");
document.getElementById("2").innerHTML = localStorage.getItem("22");
document.getElementById("3").innerHTML = localStorage.getItem("33");
document.getElementById("4").innerHTML = localStorage.getItem("44");
} else {
document.getElementById("topptur").innerHTML = "Web Storage er ikke støttet, last ned nyeste versjon av nettleseren din";
}
</script>
答案 0 :(得分:2)
你是对的,网络存储不是一个很好的解决方案。
至少有几个选项:
A server-side include(您定义该文本的文件,然后使用服务器端机制将其包含在所有页面中)
您在所有要填写所需文字的网页上链接的单个JavaScript文件
在某些时候,您可以HTML imports客户端,但目前还没有强大的支持
例如,您的JS文件可能是:
document.getElementById("1").innerHTML = "the text for 1";
document.getElementById("2").innerHTML = "the text for 2";
document.getElementById("3").innerHTML = "the text for 3";
document.getElementById("4").innerHTML = "the text for 4";
...然后您将其包含在您想要该内容的页面中的最后一个元素之后。如果您希望更改内容,只需在JS文件中进行更改即可。
一般来说,#1可能是更好的选择,至少在#3变得更可行之前。
答案 1 :(得分:0)
如果要对所有文件使用相同的文本,可以使用这些方法
您可以在模板中使用数据并在项目的任何位置使用它,这似乎是一个更好的选择。