Obiekt JavaScript localStorage złamany w IE11 w systemie Windows 7

ThelocalStorage obiekt w programie Internet Explorer 11 (kompilacja systemu Windows 7) zawiera reprezentacje łańcuchowe niektórych funkcji zamiast wywołań rodzimych, jak można by oczekiwać.

To zrywa tylko z waniliowym JavaScriptem, a witryny takie jak JSFiddle nie mają problemu z tym kodem, ale podejrzewam, że tak jestlocalStorage wypełnienia na miejscu, które to poprawiają.

Weź ten kod strony HTML na przykład:

<!DOCTYPE html>
<script>
  localStorage.setItem('test', '12345');
  alert(localStorage.getItem('test'));
  localStorage.clear();
</script>

Działa to doskonale we wszystkich moich zainstalowanych przeglądarkach z wyjątkiem IE11. Błąd występuje w pierwszej linii ”SCRIPT5002: oczekiwana funkcja

Spójrz na typsetItem funkcja jest rzeczywiście w konsoli narzędzi programistycznych IE, stwierdza, że ​​jest to ciąg ...?

    typeof localStorage.setItem === 'string' // true

Drukowanie ciągu znaków dlasetItem wyświetla następujące informacje:

"function() {
var result;
callBeforeHooks(hookSite, this, arguments);
try {
result = func.apply(this, arguments);
} catch (e) {
callExceptHooks(hookSite, this, arguments, e);
throw e;
} finally {
callAfterHooks(hookSite, this, arguments, result);
}
return result;
}"

Co dziwne, nie wszystkie funkcje zostały zastąpione ciągami znaków, na przykład odpowiednimigetItem funkcja jest rzeczywiście funkcją i działa zgodnie z oczekiwaniami.

    typeof localStorage.getItem === 'function' // true

Zmiana trybu dokumentu (emulacji) na 10 lub 9 nadal nie rozwiązuje problemu i oba powodują ten sam błąd. Zmiana trybu dokumentu na 8 daje następujący błąd ”Obiekt nie obsługuje tej właściwości lub metody'Oczekuje się, ponieważ IE8 nie obsługujelocalStorage.

Czy ktoś inny ma ten sam problem z IE11 na Windows 7, gdzielocalStorage obiekt wydaje się „uszkodzony / uszkodzony”?

questionAnswers(3)

yourAnswerToTheQuestion