2016-12-31 52 views
0

「回」禁用我提交使用按鈕處於按下狀態後,由於Safari瀏覽器bfcache

$('#submitbutton').attr('disabled','true'); 
setTimeout(function(){ $("#myform").submit(); }, 100); 

Safari中存在的形式,通過點擊瀏覽器的後退按鈕返回到該頁面時,按鈕仍然被禁用。

我試着加入:

$(document).ready(function() { 
    $('#submitbutton').removeAttr("disabled"); 
... 

但這並不工作。

我看了網上,看起來這與bfcache有關。 雖然我理解這個緩存的概念,以及它如何提高加載速度,但我不希望它在這個頁面上。有沒有簡單的解決方案來禁用它,跨瀏覽器?我在網上找到的解決方案都是2-5歲,並且不起作用。

請注意,在Chrome中,一切工作正常:按鈕已啓用,所有我的JS在單擊後退按鈕後執行。

我可以實現像啓用頁面上的按鈕或類似的東西,但我真的不喜歡在不同的瀏覽器中的這種不同的行爲。所以我想爲所有瀏覽器禁用bfcache,或者在所有瀏覽器中使用bfcache。

注意:點擊後退按鈕後,我不想強​​制頁面刷新,因爲這在頁面上看起來非常醜陋,笨重。

+0

可能重複的[防止野生動物園從後臺按鈕被點擊時從緩存加載](http://stackoverflow.com/questions/8788802/prevent-safari-loading-from-cache-when-back-button-is-clicked) –

回答

0

得到它加入這個PHP代碼工作:

<?php 
header("Cache-Control: no-cache, no-store, must-revalidate"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
?> 
0

事件pageshow甚至可以在bfcache被觸發,所以寫你的js代碼:

window.addEventListener('pageshow', function(e){ 
    //your code 
}); 
相關問題