【问题标题】:How can a web pages prevent paste events?网页如何防止粘贴事件?
【发布时间】:2014-12-30 11:09:54
【问题描述】:

在研究我的超级用户问题How can I selectively disable paste blockers 时,我发现我遇到问题的特定网站似乎没有使用任何预期的现有解决方案的任何方法。

虽然在 FireFox 中使用 dom.event.clipboardevents.enabled 首选项或 Disable clipboard manipulations 插件的全球解决方案有效,但它们也遇到了一个问题,即网站可能想要挂钩 @987654328 的正当理由 @(例如 google docs 富文本支持或 facebooks 链接处理)所以我不希望完全禁用该功能。

我们发现的解决方案(例如 Derek Prior 的 Re-enabling Password Pasting on Annoying Web Forms 和 Chris Bailey 改进的 Re-enabling Password Pasting on Annoying Web Forms (v2))使用书签有选择地禁用 paste blocking code 的功能似乎不适用于 this page

这让我想知道,petplanet 网站如何禁用粘贴,为什么现有的解决方案不能与该网站一起使用,还有哪些其他方法可以防止粘贴阻塞?回答这些问题应该有助于我们编写一个全面的书签解决方案,这样这种有害的做法就可以得到解决。

【问题讨论】:

    标签: javascript jquery html paste


    【解决方案1】:

    您可以使用 jQuery paste 事件来监听该事件,并使用prevenrDefault() 来阻止该事件。

    this页面中,他们使用了下面的jQuery

    $('#pwd, #pwd2').bind('paste',function(e){
        e.preventDefault();
        alert('Please type your password.')
    });    
    

    打开 Firebug,转到脚本选项卡,然后搜索字符串 Please type your password.(Firebug 搜索栏,而不是浏览器搜索栏。),你会发现上面的代码。并且代码存在 login.asp


    禁用它,您只需使用off 方法,例如$('#id1').off()。这将取消绑定具有 id='id1' 的元素的所有事件

    【讨论】:

      【解决方案2】:

      据我所知,您只能使用 JavaScript 来“禁用”此类功能。

      我可以想象这不是您正在寻找的答案,您可以这样做:

      var keys = [];
      window.addEventListener("keydown",
          function(e){
              keys[e.keyCode] = true;
              checkCombinations(e);
          },
      false);
      
      window.addEventListener('keyup',
          function(e){
              keys[e.keyCode] = false;
          },
      false);
      
      function checkCombinations(e){
          // try and prevent cntrl+v (paste)
          if(keys["v".charCodeAt(0)] && e.ctrlKey){
              alert("You're not allowed to paste");
              e.preventDefault();
          }
      }
      

      来源:Get a list of all currently pressed keys in Javascript

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-10
        • 2021-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-28
        • 1970-01-01
        相关资源
        最近更新 更多