JSON.parse()在火狐中的BUG

 

  

//用sessionStorage解決load頁面刷新問題
{
    //sessionStorage.removeItem("loadInfo");
    var loadInfo=decodeURI(sessionStorage.getItem('loadInfo')) ;  //兼容firefox
    loadInfo=eval("(" + loadInfo + ")"); //轉化成數組
    console.log(loadInfo);
    if(loadInfo!=null){

        var prevDiv=$(".leftSidebar>div").eq(loadInfo[0]);
        var desDiv=prevDiv.next().find("div").eq(loadInfo[1]);
        var txt=desDiv.text();
        if(txt=="預定報名" || txt=="售後服務" || txt=="我要曬家" || txt=="安全退出"){
            $("#trigger").trigger("click");
        }else{
            desDiv.trigger("click");
        }
    }else{
        $("#trigger").trigger("click");
    }

    var sidebarList=$(".leftSidebar");
    $(".listContain div").each(function(){
        $(this).click(function(){
            var $thisIndex=$(this).index();
            var $prevDivIndex=$(this).parent().prev().index();
            var arr=[$prevDivIndex,$thisIndex];
        //將刷新前的信息保存到sessionStorage
            sessionStorage.setItem('loadInfo',JSON.stringify(arr));//字符串化存入sessionStorage
        })
    })
}

  

火狐中保存:bugSyntaxError: JSON.parse: bad parsingjavascript

console.log(JSON.parse(loadInfo))在火狐中會報錯,是由於火狐瀏覽器默認給"進行encodeURI,只要進行decodeURI一下就能夠了即console.log(JSON.parse(decodeURI(loadInfo)));java

上述代碼完美兼容chrome/firefox/高版本iechrome

相關文章
相關標籤/搜索