我的localStorage返回null,我不知道为什么,不使用read函数,但只是为了帮助我还是把它放了。 Chrome表示它无法将innerHTML转换为null,而我的故障排除警报信息也会返回null,但代码会结束。任何帮助都会有用,谢谢。
饼干:
<!doctype html>
<html>
<head>
<cookie>
<script>localStorage.setItem('id',Math.floor(Math.random()*10))
</script>
</cookie>
</head>
<body>
<script>var id = localStorage.getItem('id')
alert(id)</script>
</body>
</html>
剧本:
<!doctype html>
<html>
<head>
<script>
var theId=localStorage.getItem('id')
function change(id,target){
var info = localStorage.getItem(id);
alert(info)
document.getElementById(target).innerHTML=info;
}
function read(){
var element=document.createElement('h1')
element.innerHTML='You Want To Read'
document.body.appendChild(element)
alert('debug')
}
</script>
</head>
<body>
<input type="button" value="Read" name="read_story" id="read_story"
onclick=read();change(theId,info)>
<p id='info'>initial</p>
</body>
<script>
alert('debug');
</script>
</html>
答案 0 :(得分:1)
您误解了错误消息。
如果无法设置innerHTML
的{{1}},那么您有null
。 something.innerHTML = a_value
与something
无关,与本地存储无关。
在null
中,change(theId,info)
是一个变量。它是info
元素的引用。
您可以在此处使用它:id="info"
。
document.getElementById(target)
(现在info
)会转换为字符串(target
)。
"[object HTMLParagraphElement]"
没有元素,因此您获得了id="[object HTMLParagraphElement]"
。
调用该函数时,需要传递字符串,而不是变量。