2013-10-14 45 views
2

如何在沒有任何操作的情況下運行下面的方法只有一次。我的意思是需要調用下面的方法在我的頁面加載時由於我的插件之一沒有F5沒有正確綁定。那麼我怎麼能做到這一點?只需要運行一次location.reload方法一次

location.reload(); 
+0

我認爲限制瀏覽器功能不一定是可能的 - 您可以檢查Keycode,但刷新按鈕怎麼樣? – MackieeE

+0

我可以有更多的細節嗎? – Sampath

+1

這是隱藏其他設計問題的那種問題。這裏真的不行嗎?你爲什麼想這樣做? – plalx

回答

3

如果你真的想這樣做,你可以在任何你想要的永久媒體設置一個標誌(如本地存儲,餅乾等):

if (sessionStorage.getItem('pluginBugFixedByReloading') !== 'fixed' { 
    sessionStorage.setItem('pluginBugFixedByReloading', 'fixed'); 
    location.reload(); 
} 

下面是對一些類型的鏈接存儲: https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage

在你這樣做之前,你應該問自己:爲什麼插件沒有刷新工作?在我做某件事之前,我應該等待一些異步操作的結束嗎?

我不知道你的情況的細節,但重新加載頁面似乎是一個非常醜陋的黑客,可能會在意想不到的情況下適得其反。

+0

它可以與所有啓用html 5的瀏覽器一起使用嗎? – Sampath

+0

我的鏈接頁面有一個信息:'的sessionStorage \t的Chrome 5 \t火狐2 \t IE 8 \t歌劇10.50 \t Safari瀏覽器4' – Tibos

+0

感謝我的friend.Your想法幫助我lot.I已經使用HTML5的localStorage這一點。 – Sampath

0

事實上,有很多方法可以得到您需要的東西。例如有餅乾。但是,在這個答案中我會解釋更簡單的方法。它使用iframe

解決方案取決於您的主頁是重新加載頁面的iframe。假設我們需要頁面:main.html和loader.html。

不要誤會,loader.html將是我們訪問 從瀏覽器

<!-- loader.html --> 
<html> 
    <head> 
    <title>loader</title> 
    </head> 
    <body> 
    <iframe src="main.html" name="toLoad"></iframe> 
    <script> 
     toLoad.location.reload()  
    </script> 
    </body> 
</html> 

一些CSS樣式將您loader.html和iframe來使頁面它覆蓋得很好。