当我在ietester ie6窗口中运行以下代码时:

<!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title>DealingTree</title>
        <meta http-equiv="Content-type" content="text/html;charset=utf-8"/>
        <script type="text/javascript" src="/js/modernizr.js"> </script>
        <script type="text/javascript" src="/js/jquery.js"> </script>
        <script type="text/javascript" src="/js/sssl.js"> </script>
        <script type="text/javascript" src="/js/webshims/js-webshim/minified/polyfiller.js"> </script>
      </head>
      <body>
        <script type="text/javascript">
          //<![CDATA[
          $.webshims.polyfill('json-storage');
          localStorage.setItem('myKey','myValue');
          alert(localStorage.getItem('myKey'));
          //]>
        </script>
      </body>
    </html>

弹出对话框中出现以下错误:
Line:  15
Char:  7
Error: 'localStorage' is undefined
Code:  0
URL:   http://localhost/problem2.html

代码在IE9以IE7模式运行时运行良好。
当我改用道格拉斯·克罗克福德的JSON2.js和雷米·夏普的storage polyfill时,我没有这个问题。
请帮忙?

最佳答案

我收到一封来自作者(alexander farkas)的电子邮件,其中解释了使用polyfill的代码必须在domready事件处理程序中,例如:

$.webshims.polyfill('json-storage');
$(function(){
  localStorage.setItem('myKey','myValue');
  alert(localStorage.getItem('myKey'));
});

有关详细信息:
http://afarkas.github.com/webshim/demos/index.html#polyfill-ready

08-25 15:12
查看更多