2013-06-21 56 views
1

我使用IE10和我有兩個標籤: - TAB1:index.html的 - TAB2:update.htmllocalStorage的IE10中不起作用

在TAB2:

 var tel = getURLParameter('TELNR'); 
     if (typeof (Storage) !== "undefined") { 
        localStorage.setItem("telephone", "" + tel + ""); 
    } 

在TAB1:

   function handleStorage(oEvent) { 
        var telephone = localStorage.getItem("telephone"); 
        if (telephone != null) { 
         alert("New call from this phone number:" + telephone); 
        } 
       }; 
      $(window).bind('storage', handleStorage); 

我第一打開TAB1它等待一個事件的發生。然後我打開tab2傳遞給定的電話號碼。 tab1上的監聽器被正確觸發,但電話爲空。如果我刷新tab2,則此次使用正確的編號調用handleStorage。

這完美適用於Chrome和Firefox。 任何線索?

+0

a)什麼是'存儲'在那裏做,爲什麼你檢查它? b)你確定你實際上正在改變**的價值嗎?當存儲值被**改變時,'onStorage'只會觸發**。這似乎意味着你第一次沒有正確設置它。 –

+0

爲了安全起見,我刪除了if語句if(typeof(Storage)!==「undefined」),但沒有任何變化。我100%肯定我正在改變價值。第一次tab2將值設置爲X,並且tab1理解某些內容已更改,但是當我檢索到值時,我將返回「null」。順便說一下,我已經看到,如果在tab1中我編碼:var telephone = oEvent.originalEvent.newValue我有正確的值,所以已經有一個解決方法。不過,我希望localStorage解決方案能夠在第一時間正常工作。 –

+0

嘗試使用onstoragecommit事件而不是onstorage事件 –

回答

0

我不確定您的方案,但請注意,IE瀏覽器在頁面加載時比其他瀏覽器更慢或更晚來填充localStorage。我已經通過爲IE進行軟重新載入,location.reload(),然後在隨後的頁面加載期間使用localStorage數據來解決此問題。