我正在测试localStorage以查看它是否可以在我的应用中使用,但是当我尝试将数据从文本输入框存储到它时,屏幕变为空白。我怎样才能解决这个问题?这是代码:
<html>
<head>
<script type="text/javascript">
function write() {
localStorage.setItem('item', document.getElementById('input').value);
}
function read() {
var data = localStorage.getItem('item');
document.getElementById('display').innerHTML = data;
}
</script>
</head>
<body>
<input id="input" type="text" />
<button type="button" onclick="write()">
Write
</button>
<p id="display">
Display
</p>
<button type="button" onclick="read()">
Read
</button>
</body>
</html>
答案 0 :(得分:3)
将您的函数名称从write
更改为其他名称。听起来你不小心调用了document.write
,这会使整个页面空白。
答案 1 :(得分:2)
您无法在全局(write
)命名空间中使用名为document
的函数...将其称为其他内容且工作正常
<input id="input" type="text" />
<button type="button" onclick="somethingelse();">
Write
</button>
<p id="display1">
Display
</p>
<button type="button" onclick="read()">
Read
</button>
function somethingelse() {
localStorage.setItem('item', document.getElementById('input').value);
}
function read() {
var data = localStorage.getItem('item');
document.getElementById('display1').innerHTML = data;
}
答案 2 :(得分:1)
html事件处理程序中的代码有效地运行,如:
with(document) {
with(this) {
write();
}
}
因此您的write
被遮蔽(它会调用document.write
)。您可以使用window.write()
:
<button type="button" onclick="window.write()">
最终,最好不要使用内联html事件。一个简单的button.onclick = write
就可以了,其中button
是对元素的引用。