2013-10-24 68 views
0

我正在建立一個內置計時器的某種測驗。
這一切都很好,計時器根據你回答問題的速度來設置分數。
唯一的問題是 - 當有人右鍵點擊文檔時,計時器會停下來,並且該用戶可以考慮這個問題,也許可以通過移動設備進行谷歌瀏覽或者不用。
我試過用JS阻止右鍵點擊,但是因爲它的Facebook應用程序,如果有人在應用程序框架外單擊右鍵 - 定時器仍然停止。setTimeinterval停止時,右鍵點擊

有關如何創建無論點擊右鍵都可以運行的計時器的任何想法?
謝謝!

+0

在什麼瀏覽器沒有遇到此?我從來沒有聽說過右鍵抑制間隔。另外,請張貼您的代碼來重現問題。 – Bergi

+0

@Bergi:好點,右鍵單擊似乎並不會阻止Firefox,Chrome或Opera中的setInterval計時器:http://jsbin.com/afotoRA/1它在IE10中有**。 (嘆氣)我仍然不認爲我會使用那種計時器來處理*計時事件,但也許是爲了「時間到了」!消息或類似信息。 –

+0

@ T.J.Crowder:有趣。這是如何工作的?在按鈕關閉的情況下(在上下文菜單打開的情況下)回調不會觸發,還是所有計劃的超時都是通過右鍵點擊取消的?當然,衆所周知,超時是不可靠的:-) – Bergi

回答

2

我不會使用setIntervalsetTimeout爲此。相反,我會記錄他們什麼時候開始查看問題,什麼時候他們回答問題,並採取差異。

當然,如果此信息在客戶端持有,則所有投注都將關閉。 :-)即使你把信息發送到服務器,你也必須有一些機制來處理試圖欺騙的人不可避免的手工製作的HTTP請求。

-1

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 
});