Tom*_*tom 1 javascript html5 internet-explorer-8 local-storage
我有这个字符串,我试图存储并获取localStorage,并从中检索,以便它可以显示.这是我的代码:
var datas = new Array;
if (navigator.appName !== 'Microsoft Internet Explorer'){
var qsVal = document.getElementsByClassName("val");
}
else{
var qsVal = document.querySelectorAll('.val');
}
if (navigator.appName !== 'Microsoft Internet Explorer'){
var qsKey = document.getElementsByClassName("key");
}
else{
var qsKey = document.querySelectorAll('.key');
}
var storedPlays;
var stuff = document.getElementById("stuff");
function pushArray(){
for (var i=0, len = qsVal.length; i < len; i++){
thisValue = qsVal[i].value;
thisKey = qsKey[i].value;
datas.push([thisValue,thisKey]);
}
localStorage.setItem('datas', JSON.stringify(datas));
}
function showStuff(){
storedPlays = JSON.parse(localStorage.getItem('datas'));
document.getElementById("stuff").innerHTML = storedPlays;
}
Run Code Online (Sandbox Code Playgroud)
它适用于FF和Chrome,但当我调用'showStuff'时,IE8会返回"'localStorage'为null或不是对象".
有趣的是,当我调用'pushArray'时它不会给我一个错误,它也使用'localStorage'.
我也尝试使用"window.localStorage"而不仅仅是"localStorage",它返回了同样的错误......
根据微软和W3的说法,IE8应该支持localStorage,所以有没有人知道问题出在哪里?太感谢了!
编辑 - 这是代码的jsfiddle.出于某种原因,它没有那么好用,只是为了让你感受一下代码......
根据我的理解,IE8仅为有效域提供存储.尝试将您的示例放在某个Web服务器中,它应该解决问题.
当我将其作为单个文件进行测试时,我遇到了同样的问题但是当我把它放在服务器(我的情况下是Tomcat)时,它工作得很好.