2017-07-27 21 views
1

你好,大家好我怎麼可以停止window.load功能,因爲我總是閃屏彈出每次我刷新頁面或轉向到我的網站的另一個頁面如何停止的onload功能,即使刷新

這是我的代碼到目前爲止:

window.onload = function openNav() { 
    document.getElementById("myNav").style.width = "100%"; 
    splashScreen();  
} 

function closeNav() { 
    document.getElementById("myNav").style.width = "0%"; 
} 

它總是彈出。我可以做一些像餅乾一樣的東西,這樣window.load不會再起作用,或者我應該摧毀這個功能。任何人都可以請我不知道該怎麼做了。

+0

它取決於什麼時候你想顯示彈出窗口,什麼時候你不會? –

+0

你試圖達到的目標很不明確。但有一個建議,如果你不想執行'onload'的任何操作,只需將其刪除即可。 –

+0

@AlivetoDie我不明白先生。你能解釋清楚嗎 –

回答

0

每次重新加載窗口時,window.onload函數都會起作用。如果你想在條件下顯示啓動畫面,你不能使用onload。問題是,你想在什麼時候加載啓動畫面?

2

如果您只想調用splashScreen()一次,第一次加載頁面,那麼您可以在第一次調用該函數時在瀏覽器的localStorage中保存一些值,並且只有當該值不存在時才調用該函數在localStorage中。例如

window.onload = function openNav() { 
    document.getElementById("myNav").style.width = "100%"; 
    if(localStorage.getItem('splash') === null){ 
     splashScreen(); 
     localStorage.setItem('splash', "true") 
    } 
} 

解決了刷新頁面的問題。

但是,這將不允許splashScreen()被稱爲如果打開頁面下一次關閉它,因爲這也許可以節省調用的localStorage功能的當前時間,然後檢查,如果你想調用的函數後或不基於存儲的時間。

+0

你從哪裏得到這個'''getItem('splash')'''先生? –

+0

'getItem()'是一種使用'setItem()'獲取存儲在localStorage中的值的方法。你可以在這裏獲得更多關於這些信息https://developer.mozilla.org/en/docs/Web/API/Window/localStorage – Dij