2015-09-03 140 views
11

我目前正在研究一些JS。除了Microsoft Edge之外,它在每個瀏覽器中都能正常工作。 這個問題很簡單: 在我的劇本之一的開始,我聲明一個變量,像這樣:localStorage不能在Edge中工作?

var something = localStorage.getItem('something'); 

但無論如何,東西還不存在,但整個想法是,這可以用於在後面的函數中引用。 Firefox,Chrome,Opera和Safari沒有問題,但Edge的確如此,所以我的問題是,這是一個快速解決方案嗎? 或者我將不得不重寫我的整個腳本,因爲Edge?

這是邊緣拋出的錯誤。

Unable to get property 'getItem' of undefined or null reference 

謝謝!

+0

試工作。 'localStorage ['something']' –

+0

當我在IE中試用它時,它不會拋出錯誤。你可以添加更多的代碼嗎? –

+0

https://msdn.microsoft.com/en-us/library/bg142799%28v=vs.85%29.aspx –

回答

12

本地存儲didn't work for local files in IE9,所以我想這仍然是在MS邊緣的情況下。

我只是與服務器測試它在邊緣上localhost和你的代碼行的工作只是罰款:

> var something = localStorage.getItem('something'); 
> undefined 

這是可能的,這是在早期版本的IE瀏覽器的一個安全問題,只是從不更新隨着瀏覽器的開發。

雖然,似乎localStorage的和sessionStorage的還是不Edge for HTML files accessed using the 'file://' protocol.

+3

謝謝!去愛微軟! – Niels

+1

繼續討論這個問題。儘管localStorage正在爲我工​​作,同樣在本地主機上的IE瀏覽器中,也適用於單頁應用程序。當我嘗試設置和訪問多個頁面上的屬性時,它的行爲意外;它似乎只更新當前網址(個人頁面)。最終我決定在線時只能在IE中測試。 – dading84

3

可否請您嘗試

var something = window.localStorage.getItem('something'); 

是否也能檢查是否有「啓用DOM存儲」選擇?您可以在下面找到它: Internet選項 - >高級選項卡 - >安全組框

此外,如果您從本地文件系統運行您的頁面,localStorage不能在IE上運行,您必須從Web服務器運行它。

Here is a link that provides more information of how to enable it

+0

仍然收到相同的錯誤。 – Niels

+0

不要一直說同樣的話。 – Niels

+0

之前,你有沒有將名爲'something'的變量設置爲本地存儲?使用'localStorage.setItem' – Akhil

0

也許DOMStorage被關閉?測試與此:

if (typeof window.Storage === 'undefined') { 
    alert('Storage turned off...'); 
} 
相關問題