我正在建立一個內置計時器的某種測驗。
這一切都很好,計時器根據你回答問題的速度來設置分數。
唯一的問題是 - 當有人右鍵點擊文檔時,計時器會停下來,並且該用戶可以考慮這個問題,也許可以通過移動設備進行谷歌瀏覽或者不用。
我試過用JS阻止右鍵點擊,但是因爲它的Facebook應用程序,如果有人在應用程序框架外單擊右鍵 - 定時器仍然停止。setTimeinterval停止時,右鍵點擊
有關如何創建無論點擊右鍵都可以運行的計時器的任何想法?
謝謝!
我正在建立一個內置計時器的某種測驗。
這一切都很好,計時器根據你回答問題的速度來設置分數。
唯一的問題是 - 當有人右鍵點擊文檔時,計時器會停下來,並且該用戶可以考慮這個問題,也許可以通過移動設備進行谷歌瀏覽或者不用。
我試過用JS阻止右鍵點擊,但是因爲它的Facebook應用程序,如果有人在應用程序框架外單擊右鍵 - 定時器仍然停止。setTimeinterval停止時,右鍵點擊
有關如何創建無論點擊右鍵都可以運行的計時器的任何想法?
謝謝!
我不會使用setInterval
或setTimeout
爲此。相反,我會記錄他們什麼時候開始查看問題,什麼時候他們回答問題,並採取差異。
當然,如果此信息在客戶端持有,則所有投注都將關閉。 :-)即使你把信息發送到服務器,你也必須有一些機制來處理試圖欺騙的人不可避免的手工製作的HTTP請求。
U可以使鼠標的事件右鍵點擊:
$('#element').mousedown(function(event) { if (event.which ==3) { event.preventDefault(); } });
或像這樣:
$(document).bind("contextmenu",function(e){
return false;
$('.alert').fadeToggle(); // this line never gets called
});
在什麼瀏覽器沒有遇到此?我從來沒有聽說過右鍵抑制間隔。另外,請張貼您的代碼來重現問題。 – Bergi
@Bergi:好點,右鍵單擊似乎並不會阻止Firefox,Chrome或Opera中的setInterval計時器:http://jsbin.com/afotoRA/1它在IE10中有**。 (嘆氣)我仍然不認爲我會使用那種計時器來處理*計時事件,但也許是爲了「時間到了」!消息或類似信息。 –
@ T.J.Crowder:有趣。這是如何工作的?在按鈕關閉的情況下(在上下文菜單打開的情況下)回調不會觸發,還是所有計劃的超時都是通過右鍵點擊取消的?當然,衆所周知,超時是不可靠的:-) – Bergi