Internet Explorer 11(Windows 7版本)中的localStorage
對象包含某些函數的字符串表示形式,而不是您所期望的某些函數的本地調用。在Windows 7上的IE11中損壞的JavaScript localStorage對象
這隻與香草JavaScript和網站像JSFiddle沒有這個代碼沒有問題,但我懷疑這是因爲有localStorage
填充到位,糾正它。
把這個HTML網頁代碼,例如:
<!DOCTYPE html>
<script>
localStorage.setItem('test', '12345');
alert(localStorage.getItem('test'));
localStorage.clear();
</script>
這工作得很好,除了爲IE11我所有安裝的瀏覽器。第一行發生錯誤'SCRIPT5002:預計功能'。
看看setItem
函數實際上在IE開發人員工具控制檯中是什麼類型,說明它是一個字符串......?
typeof localStorage.setItem === 'string' // true
打印出來的字符串setItem
顯示以下內容:
"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;
}"
奇怪的是,並非所有的功能都被替換字符串,例如,相應的getItem
功能的確是一個功能和工作原理預期。
typeof localStorage.getItem === 'function' // true
將文檔模式(仿真)更改爲10或9仍然不能解決問題,並且兩者都會導致相同的錯誤。將文檔模式更改爲8會導致以下錯誤'對象不支持此屬性或方法',這是因爲IE8不支持localStorage
而預期的。
是否有其他人與Windows 7上的IE11相同的問題,localStorage
對象似乎「破損/腐敗」?
其實localStorage [由IE 8支持](https://msdn.microsoft.com/en-us/library/bg142799(v = vs.85)。ASPX)。 –