2011-08-26 109 views
3

由於Firefox在使用HTML5應用程序緩存時提示用戶存儲數據,因此我想在Firefox中禁用它以避免提示通知。如何在Firefox中禁用HTML5應用程序緩存專用

要做到這一點的一種方法是提供兩個不同的HTML文件:一個用於Firefox,<html>,另一個用於其他瀏覽器<html manifest=...>

但爲了提高效率,我想提供一個靜態文件。

那麼,如何在Firefox中爲<html manifest=...>提供文件時禁用應用程序緩存?

+0

about:config中有一個dom.storage.enabled設置,它應該可以做你想做的事。 –

+0

@Marc:我不認爲他想在個人網頁瀏覽器中禁用它。 –

+0

「單個靜態文件」。因爲這意味着服務器不能破壞文件,這就會改變瀏覽器設置。 –

回答

5

在加載頁面之前,manifest屬性不會被檢查。這意味着您可以在加載頁面時將其刪除,並且不會顯示提示。像這樣:

<script type="text/javascript"> 
    if (window.navigator.product == "Gecko") 
    document.documentElement.removeAttribute("manifest"); 
</script> 

這當然假設所有的Gecko瀏覽器都需要因爲這個提示而被永遠禁止。絕對不好,尤其是因爲提示可能在將來的某個時候消失。但我沒有看到正確的方法來檢測瀏覽器是否會提示用戶存儲Web應用程序以供脫機使用。

+0

這可行。千恩萬謝。我下意識地假設它會在加載頁面之前檢查:)。是的,我很想啓用appCache for Firefox,但對我來說,提示是一個不行,從我的角度來說,順便說一句是Firefox的一個缺陷 – brillout

+0

window.navigator.product在Safari和Chrome中也是「Gecko」!此外,這個工作似乎是一個意外,對HTML5規範,它說,「應用程序緩存選擇發生在HTML解析器。」 (http://www.w3.org/TR/html5/browsers.html#read-html) – natevw

2

使用iframe安裝applicationCache;這樣你可以用一個按鈕提示用戶,並在點擊該按鈕後加載iframe。

相關問題