禁止在HTML页面中复制和“搜索”文本

时间:2015-10-09 02:41:03

标签: html css text fonts online-game

我有一个简单的在线游戏,人们必须回答问题。他们有最多30秒的时间来回答,我发现大多数人使用“复制和粘贴”只是将问题复制到Google搜索并在互联网上找到答案。或者他们也可以使用“选择文本”并使用RMB菜单项“在Google中搜索”。

我正在寻找的是一个很好的保护。鼠标按钮禁用无效,我不想限制复制其他内容。

我最好的想法是使用带有混合字符的字体。我将仅使用此字体进行查询,他们可以复制并粘贴由此类字体编写的问题,但在将其放入Google搜索行时会看到混乱。

你觉得它会起作用吗?或者你可以提出更好的主意?如果您认为混合字符字体是一个好主意,我该如何制作这样的字体?有没有这方面的工具?

谢谢!

1 个答案:

答案 0 :(得分:1)

你可以在这里做很多事情。

当您复制并粘贴到浏览器的文本输入时,特殊格式(样式)将丢失,只会粘贴字符。足够快的打字员只需手动输入即可。

  1. 你可以做的一件事 - 但是社区可能会指责我甚至提出建议 - 是试图利用这样一个事实:当你退出或失去对浏览器窗口的关注时,大多数浏览器(我是熟悉:Chrome,FF和IE)会将计时器的时钟减慢到每1秒钟一次。因此,如果您设置一个快速计时器,比如说每1/10秒,那么您可以通过将浏览器窗口置于后台来检查用户是否“作弊”(即,将标签切换到Google的问题)。 不幸的是,如果用户打开新窗口而不是切换标签,则会失败。
  2. 以下是一些可以执行此操作的代码。它适用于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);

    1. 你可以做的另一件事,但可能比第一次尝试更容易被击败,是挂钩<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>事件处理程序。此方法还禁用上下文菜单以避免右键单击搜索功能。例如:
    2. oncopy
      document.getElementsByClassName('question')[0].oncontextmenu = 
        document.getElementsByClassName('question')[0].oncopy = 
          function(){alert("CHEATER!!!!"); return false;};

      你可以将这些结合起来,也许可以完成你想要做的事情。

      根据我的经验,作弊者总是有优势。您可能希望以不同的方式解决这个问题 - 不是从技术角度,而是从动机的角度来看。用户玩智力竞赛游戏的动机是什么?他们如何获得奖励?这是对抗其他球员的比赛吗?他们获得奖励积分吗?你能否为“作弊”扣除积分?