HTML5機能localStorage
を使用しようとしています。 このブログ によれば、IE8を使用して実行できますが、使用しようとするとJavaScriptエラー'localStorage is null or not an object'
私の質問:localStorage
はIE8ですぐに使用できますか?ここに私のコードがあります:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<title>IE8 - DOM Storage</title>
<script type="text/javascript">
function Save() {
localStorage.setItem('key','value');
}
</script>
</head>
<body>
<button onclick="Save();">
Save
</button>
</body>
</html>
IE8モードである必要がありますが、localStorage
をサポートします(IE7モードでは動作しません)。
IE8モードで作業していることを確認するには、開発者コンソールをロードします。上部で、IE8モードが選択されていることを確認します。標準モードもいいでしょう。
確認したいことの1つは、HTML5 Doctypeを使用していることです。 HTML5機能でXHTML Doctypeを使用することはできません。
<!DOCTYPE html>
このDoctypeを使用しても、ブラウザのサポートに影響はありません。
また、window.localStorage
。それは問題ではないはずですが、IEは奇妙な問題をホストすることで知られています。おそらくローカルスコープのlocalStorage
オブジェクトを探しているのでしょうか?.
musicfreakのコメントは正しかった。この機能にはドメインが必要なため、ディスクからファイルとして開くのではなく、ライブURL(少なくともlocalhost)を介してのみ使用する必要がありました。
IE8はlocalStorage
のみを認識するため、window.localStorage
を追加する必要はありません。
前回の良い回答を拡張します:
私はこれと同じ問題を抱えていました-さらに悪いことです! IE10でさえ失敗しました!-そして(私にとっては)ソリューションがInternet Explorerよりも開発環境に関係していることがわかりました。私がやったことは、HTMLファイルを作成し、優れたテキストエディターを使用して多くの編集を行いました。ファイルをクリックしてブラウザにドラッグし、ページ開発の進捗状況を確認し、後でファイル内のさまざまなものを更新/編集したときにブラウザウィンドウを単純に更新することができました。
ChromeおよびFirefoxとOperaの場合、window.localStorageは有効なオブジェクトでしたが、Internet Explorerの場合は「デバッガーで見られるように」「未定義」でした。 Webサーバープログラム(「localhost」用)を起動し、それを使用してHTMLページをブラウザーにフィードし、Internet Explorerがwindow.localStorageに有効なオブジェクト(「DispHTMLStorage」)を提供しました。また、Tools/Options/IEの場合、「DOMストレージを有効にする」チェックボックスがあります。デフォルトではチェックされているように見えますが、一部のユーザーが手動で無効にすることは常に可能です。
X-ua互換メタタグで「IE = 8」の代わりに「IE = Edge」を使用してみてください
Microsoftから:( link )
次の値を使用して、Internet Explorer 6からIE11まで、Internet Explorerでサポートされる最高の標準モードであるEdgeHTMLモードでWebページを表示します。
<meta http-equiv="x-ua-compatible" content="IE=Edge" >