2011-11-18 42 views
2

我正在編輯由其他人創建的頁面。此頁面的onbeforeunload值設置爲body,該值調用一個將光標更改爲等待的函數。所以當用戶點擊一個按鈕時,它會顯示等待光標,但如果用戶之後點擊取消,光標將保持爲wait。我如何讓它回到自動/默認?卸載後將光標移回到自動

body標籤代碼:

<body onbeforeunload="showHourglass();"> 

JS功能

function showHourglass() { 
      document.body.style.cursor = 'wait'; 
     } 
+0

通過取消,你的意思是瀏覽器停止按鈕? –

+0

我應該澄清,這個問題只發生在用戶點擊下載按鈕開始文件下載時,但如果他們選擇不下載文件(點擊取消),它會返回到頁面,並且光標仍在等待。 – Victor

+0

當用戶不單擊取消時,光標如何恢復爲默認值?這是一個回調,當下載完成時觸發?或者,回發只是刷新頁面,以便重置狀態? –

回答

0

你應該將事件添加到您的取消按鈕,改變你的光標回default

onclick屬性:

onclick="resetCursor()" 

的Javascript:

function resetCursor() { 
    document.body.style.cursor = 'default'; 
} 
+0

是的,這是一個很好的解決方案,但是他們在下載提示菜單中點擊瀏覽器的取消按鈕。 – Victor

+0

Oooooooh,所以這就是你在做什麼。那麼我會去El Guapo的解決方案。 –

2

showHourglass(),你可以做這樣的事情的內...

function showHourglass() { 
    document.body.style.cursor = 'wait'; 
    setTimeout(function() { 
     document.body.style.cursor = 'default'; 
    }, 5000); 

} 

這將揭開序幕進程在5秒後運行以將光標恢復到正常狀態。這假定「取消」按鈕是瀏覽器的停止按鈕。

+0

很明顯,您需要將超時調整爲最適合您的值,但絕對不應超過5秒才能將您的用戶發送到新資源。 –

0

您應該將函數綁定到JS代碼中的取消事件(是click事件?)還是onload事件。

$('#cancel_button').click(hideHourglass); 
$(document).ready(hideHourglass); 

function hideHourglass() { 
      document.body.style.cursor = 'default'; 
     }