2013-10-24 29 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 
});