IE9和IE10是否完全支持本地存储

时间:2015-01-19 11:44:38

标签: javascript local-storage

如果用户在标签中打开特定资源,我正在使用本地存储来跟踪。在chrome和firefox中,每当用户尝试在两个不同的选项卡中加载资源时,我都可以实现这一点,我的代码会在加载活动时得到通知。例如,如果用户已经打开了R1资源,那么让我拥有资源R1,然后localStorage.getItem(" R1")给我一些值,这意味着Item已经在某个不同的选项卡中打开了。但是在IE9和IE10中我遇到问题事件,当localStorage中存在该项时某些选项卡获取正确的值,但有些选项卡获取空值。即。我在一个标签中打开R1然后我尝试在3个不同的标签中打开R1两个然后得到R1已经打开但是有人说它没有打开。

2 个答案:

答案 0 :(得分:0)

Ie9和IE 10完全支持Localstorage。要查看访问caniuse网站并输入localstorage。您也可以使用modernizr进行检查。

https://caniuse.com/#feat=namevalue-storage

答案 1 :(得分:0)

经过一些试验后,我注意到在Internet Explorer的情况下,本地存储不会在标签之间持久存在。我在不同的选项卡中进行了一些操作后,我创建了一个用户操作中更新本地存储的页面,我注意到同一个键在同一个域下的不同选项卡中有不同的值。示例代码:

<html>
<head>
</head>
<body onload="showError()" onbeforeunload="unloadFun()">

<script type="text/javascript">
    var timer;
    function showError(){
        if(localStorage["test"]){
            appendActionToLocalStorage("set");
            document.getElementById("message").innerHTML=localStorage["renew"];
        }
        timer=setInterval(function(){appendActionToLocalStorage("renew");},5000);
    }
    function appendActionToLocalStorage(operation){
      if (typeof(Storage) != "undefined") {
        if(localStorage["opSeq"]){
          localStorage["opSeq"]=localStorage["opSeq"]+"-"+operation;
        }
        else{
          localStorage["opSeq"]=operation;
        }
      }
    }
    function funA(){
        appendActionToLocalStorage("setA");
    }
    function funB(){
        appendActionToLocalStorage("setB");
    }
    function funC(){
        appendActionToLocalStorage("setC");
    }
</script>       
<h1> 404 : Resource Not Found</h1>
<h2 id="message"></h2>
<a href="#" onclick="funA()">A</a>
<a href="#" onclick="funB()">B</a>
<a href="#" onclick="funC()">C</a>
</body>
</html>