如何在 chrome 浏览器上覆盖 jquery 函数?

我有一个网站,我可以在那里做笔记。目前我必须手动输入我的所有笔记。他们禁用了右侧上下文菜单。我添加了一个可以在页面上运行 javascript 的 chrome 扩展,但我无法覆盖它们覆盖上下文菜单的功能。这是他们页面上的内容。


$(document)[0].oncontextmenu = function() { return false; }

$(document).mousedown(function(e){

    if( e.button == 2 ){

        alert('Sorry, right click is disabled! Please consider typing');

        return false;

    }else if(e.button == 27){

        exitFullscreen();

    }else{

        return true;

    }

});


$('body').bind('cut copy paste', function (e) {

    e.preventDefault();

    alert('Sorry, consider typing');

});       


$("body").on("contextmenu",function(e){

    alert('Sorry, consider typing');

    return false;

});

我如何使用一些简单的 javascript 禁用它。我尝试覆盖上下文菜单并将其设置为空,但它似乎不起作用


守着星空守着你
浏览 83回答 0
0回答

一只斗牛犬

您可以使用 jQuery off()和一个新函数来document.oncontextmenu返回 true 而不是 false我将它们包装在按钮单击处理程序中,只是为了显示阻止上下文菜单和键盘复制并在单击按钮时重置的原始代码$('#reset-btn').click(() => {  // code to use in your extension  $('body').off('contextmenu cut copy paste')  document.oncontextmenu = () => true;  $(document).off('mousedown');});<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><div style="height:2000px; background:yellow">  <button id="reset-btn">Reset Context Menu</button>  <p>Some text to copy</p></div><script>  /*******   Original site code *****/  $(document)[0].oncontextmenu = function() {    return false;  }  $(document).mousedown(function(e) {    if (e.button == 2) {      alert('Sorry, right click is disabled! Please consider typing');      return false;    } else if (e.button == 27) {      exitFullscreen();    } else {      return true;    }  });  $('body').bind('cut copy paste', function(e) {    e.preventDefault();    alert('Sorry, consider typing');  });  $("body").on("contextmenu", function(e) {    alert('Sorry, consider typing');    return false;  });</script>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript