2010-10-14 57 views
1

問題劫持刷新鍵

你如何覆蓋有自定義JavaScript函數刷新鍵?順便說一句,我使用Prototype庫。

爲什麼

我有一個就在身邊的用戶評論的視頻。有一個按鈕只能通過JS函數updateComments()刷新註釋。在一些用戶測試過程中,一些白癡拒絕使用該按鈕來更新評論。相反,他們刷新了整個頁面。這會導致視頻重新啓動,這是不可取的。我想覆蓋F5鍵或CTRL + R來調用updateComments()而不是刷新頁面。

+3

你不能做到這一點。那麼,你*可能*能夠抓住按鍵,但是你不能禁用瀏覽器按鈕(至少,不可靠)。 – Pointy 2010-10-14 22:34:17

+1

您也無法禁用菜單項刷新/重新加載,或在我的朋友的完全自定義和重新映射的Firefox的奇怪組合。只要他們不能學習,就把這些人的電腦帶走。刷新整個頁面會重新啓動我去過的每個網站上的視頻,而不僅僅是您的視頻。 – 2010-10-14 23:55:57

回答

1

您將無法禁用瀏覽器按鈕,這將違反一般UI體驗。一種可能性是檢查頁面的加載方式,並向用戶顯示「請勿將其加載註釋」。例如,谷歌瀏覽器,你可以檢查頁面已經被重新加載:

if (chrome.loadTimes().navigationType === 'Reload') { 
    alert('Please reload comments using the magic button'); 
} 

我不能肯定,如果其他瀏覽器也有可用的類似功能,但我懷疑它會在許多。

一般來說,在這種情況下,我的建議是改變你如何加載評論。例如,Twitter搜索將定期檢查新的推文,然後顯示一個「顯示X多推文」按鈕,用戶可以按這些按鈕來顯示它們。

1

我認爲你可以做的最好的事情就是給window.onbeforeunload事件添加一個處理程序。

事情是這樣的:

function beforeUnload() { 
    if (videoIsPlaying) { 
     return "Are you sure you want to stop the video?"; 
    } 
} 
window.onbeforeunload = beforeUnload; 

的例子看看herehere