我有一个简单的在线游戏,人们必须回答问题。他们有最多30秒的时间来回答,我发现大多数人使用“复制和粘贴”只是将问题复制到Google搜索并在互联网上找到答案。或者他们也可以使用“选择文本”并使用RMB菜单项“在Google中搜索”。
我正在寻找的是一个很好的保护。鼠标按钮禁用无效,我不想限制复制其他内容。
我最好的想法是使用带有混合字符的字体。我将仅使用此字体进行查询,他们可以复制并粘贴由此类字体编写的问题,但在将其放入Google搜索行时会看到混乱。
你觉得它会起作用吗?或者你可以提出更好的主意?如果您认为混合字符字体是一个好主意,我该如何制作这样的字体?有没有这方面的工具?谢谢!
答案 0 :(得分:1)
你可以在这里做很多事情。
当您复制并粘贴到浏览器的文本输入时,特殊格式(样式)将丢失,只会粘贴字符。足够快的打字员只需手动输入即可。
以下是一些可以执行此操作的代码。它适用于Chrome。没有在别处测试过。
<a ui-sref="carDetail({id: id})" class="list-group-item active">
var msDelay = 100;
var pageInBackground = false;
var epoch = new Date();
var bgMonitor = setInterval(function() {
var newEpoch = new Date();
var lagMs = newEpoch - epoch;
epoch = newEpoch;
if (lagMs > msDelay * 2) {
pageInBackground = true;
alert("NO CHEATING! YOU SWITCHED TABS!");
clearInterval(bgMonitor);
}
}, msDelay);
<h2>QUESTION: WHO IS BURIED IN GRANT'S TOMB?</h2>
<h4>NO CHEATING! YOU CANNOT SWITCH TABS AND GOOGLE IT! OR ELSE!</h4>
<h3>HINT: TRY TO OPEN A NEW TAB</h3>
事件处理程序。此方法还禁用上下文菜单以避免右键单击搜索功能。例如:
oncopy
document.getElementsByClassName('question')[0].oncontextmenu =
document.getElementsByClassName('question')[0].oncopy =
function(){alert("CHEATER!!!!"); return false;};
你可以将这些结合起来,也许可以完成你想要做的事情。
根据我的经验,作弊者总是有优势。您可能希望以不同的方式解决这个问题 - 不是从技术角度,而是从动机的角度来看。用户玩智力竞赛游戏的动机是什么?他们如何获得奖励?这是对抗其他球员的比赛吗?他们获得奖励积分吗?你能否为“作弊”扣除积分?