5

localStorageInternet Explorer 9で Modernizr が予期せずオブジェクトのサポートを検出しないというクライアントの問題に取り組んでいます。私のページは HTML 5 doctype ( <!DOCTYPE html>) を正しく使用しており、開発者ツールはページに IE9 のブラウザー モードとドキュメントがあることを報告します。 IE9標準のモードなので、これでうまくいくと思います。

Modernizr で次のtry/ブロックをデバッグしたところ、オブジェクトにアクセスするとすぐに JavaScript エラーがスローされることがわかりました。catchlocalStorage

tests['localstorage'] = function() {
    try {
        localStorage.setItem(mod, mod);
        localStorage.removeItem(mod);
        return true;
    } catch(e) {
        return false;
    }
};

一部のマシンでは、JavaScript エラーのメッセージはThe system cannot find the file specified.. 他のものではInvalid argument.、エラーがスローされる前に Internet Explorer がちょうど 5 分間ブロックされます。

localStorageオブジェクトにアクセスすると Internet Explorer でエラーがスローされる原因は何ですか?

4

2 に答える 2

10

Internet Explorerのファイル マスクおよびファイル名プロパティの制限に記載されているように、最下位レベルのサブドメインが予約済みのデバイス名の 1 つと一致する場合、localStorageオブジェクトにアクセスするとエラーがスローされることを発見しました。

この問題は、オブジェクトの初期化手順localStorageを満たすためにオブジェクトにアクセスするときに、内部的に Internet Explorer が予約済みのデバイス名を使用してファイル システムにアクセスしようとするために発生する可能性があります。Storage

これは確かに非常にまれなケースですが、あなたのページがconprnauxclock$nulcom1com2com3com4com5com6com7com8com9lpt1lpt2、または(例)これが、この問題が発生している理由である可能性があります。lpt3lpt4lpt5lpt6lpt7lpt8lpt9http://prn.example.com

この状況で予約済みのデバイス名ではない下位レベルのサブドメインを選択すると、問題が解決しました。

于 2012-11-15T07:05:58.337 に答える