3

IETesterIE6ウィンドウで次のコードを実行すると:

<!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

コードは、IE7モードで実行されているIE9で正常に機能します。

DouglasCrockfordのJSON2.jsとRemySharpのストレージポリフィル(これはおそらくベースになっています)を使用するように変更しても、問題はありません。

助けてください?

4

2 に答える 2

2

著者(Alexander Farkas)から、ポリフィルを使用するコードは次のようなdomreadyイベントハンドラー内にある必要があることを説明する電子メールを受け取りました。

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

詳細については、http: //afarkas.github.com/webshim/demos/index.html#polyfill-readyをご覧ください。

于 2011-05-26T03:40:59.570 に答える
-1

IE6はHTML5機能をまったくサポートしていません。これは、すでに死んで埋められているはずの古いブラウザにとってはそれほど驚くべきことではありません(IE6は2001年にリリースされ、HTML5の基盤は2004年にのみ確立されました)。詳細については、この回答を参照してください。

このような機能をエミュレートできるラッパーがあることに注意してください。たとえば、この質問は、IE6+との互換性のためにjStorageを提案しています。

于 2011-05-20T15:30:21.147 に答える