【问题标题】:Disable alert message with jQuery [closed]使用 jQuery 禁用警报消息 [关闭]
【发布时间】:2019-04-06 17:24:26
【问题描述】:

谁能告诉我如何在以下代码中禁用警报消息?

jQuery(document).ready(function($){
    $(document).keydown(function(event) { 
        var pressedKey = String.fromCharCode(event.keyCode).toLowerCase();        
        if (event.ctrlKey && (pressedKey == "v")) {
            alert('Sorry, This Functionality Has Been Disabled!'); 
            //disable key press processing
            return false; 
        }
    });
});

我们有一个聊天网站,我们想禁用 CTRL+V,对于 Firefox 用户,它会显示一条弹出消息,上面写着“抱歉,此功能已被禁用!” 并且它还提供了“防止此页面创建其他对话”的选项,一旦您单击该选项,用户就可以使用 CTRL+v

我们可以禁用此消息吗?

【问题讨论】:

  • 为什么不能删除那行代码?
  • 你知道粘贴不仅仅是ctrl+v吗?右键单击,编辑/粘贴....等
  • 所以你真的想从页面上禁用复制/剪切,它与警报消息无关。我认为我们应该关闭它,因为它没有任何意义。
  • 我认为 OP 希望弹出窗口出现一次并且一旦出现就停止。虽然不清楚。你可能想看看.one()

标签: javascript jquery


【解决方案1】:

很遗憾你不会喜欢这个答案:

实际上不可能完全阻止用户访问他们的剪贴板,这不能用 JS 完全控制,因为该功能是由操作系统沙箱化的。

你可以通过绑定按键和做其他事情来迷惑用户,但你不能真正阻止他们复制和粘贴。如果您想安静地忽略这些按键,也可以完全不致电alert

【讨论】:

  • 他们没有把数据放到他们的剪贴板上;)
  • 嗯,怎么样? (改为“访问”)
【解决方案2】:

我的理解是,你只想第一次显示消息,然后一直阻止操作而不显示消息。

所以,你需要一个你是否已经显示消息的标志

jQuery(document).ready(function($){
    var notifiedCtrlV = false;
    $(document).keydown(function(event) { 
        var pressedKey = String.fromCharCode(event.keyCode).toLowerCase();        
        if (event.ctrlKey && (pressedKey == "v")) {
            event.preventDefault();
            if (!notifiedCtrlV) alert('Sorry, This Functionality Has Been Disabled!'); 
            notifiedCtrlV = true;
            //disable key press processing
            return false; 
        }
    });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多