2017-09-01 310 views
-1

我有一頁加載一個微調,每次我們去那個頁面。每當我做一個頁面重新加載,微調框再次加載。 我想要的是當我執行頁面重新加載或刷新時,不要讓微調器加載。如何在頁面刷新或重新加載時觸發JavaScript函數?

$(document).ready(function() { 
    $.ajax({ 
    url: window.location.protocol + '//' + window.location.host + '/quotes', type: 'post', data: {_csrf: $('#_csrf').val()}, beforeSend: function() { 
     $('#quotesPageDiv').hide(); 
     $spinnerDiv.fadeIn(300); 
     $spinnerDiv.children('p').each(function(index) { 
// my code 
     } 
     }); 
    }, success: function(data) { 
// my code 
     setTimeout(function() { 
// my code 
     }); 
     }, 1000); 
    }, error: function() { 
     window.location.assign('error-page'); 
    }, 
    }); 
}); 

我已經試過各種事情像window.unloadwindow.beforeunload等,但沒能得到期望的結果。任何人都可以幫忙嗎?

謝謝!

+1

一個選項不加載微調是設置一個cookie,或者使用localStorage的記得當頁的最後加載,和n比較該頁面加載的時間。 – raphael75

回答

0

要在頁面加載時執行JS函數,您需要添加一個「Event Listener」。具體而言,在整個頁面加載時調用window.AddEventListener("load", YOUR FUNCTION CALL HERE);。您還可以使用DOM中的對象註冊事件。
jQuery中,$(window).on("load", YOUR FUNCTION CALL HERE)

另請參見:https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

+0

這將適用於每個頁面加載。 OP要求一種方法來檢測重新加載/刷新 – yezzz

+0

啊,我誤解了。據我瞭解,HTML是無狀態的,所以OP在運行時不會重構他的邏輯。 –

+0

那麼,使用'load'事件或'DOMContentloaded'或'.ready'是做一些自定義邏輯的好時機。這只是你的答案沒有添加任何邏輯。通過回答slacerda看起來可行。 – yezzz

0

做這樣的事情:

1)頁面加載,存儲當前的URL在本地存儲 2)重新加載頁面,覈對本地存儲當前的URL 一),如果他們不匹配 僅b負荷微調)如果它們匹配

相關問題