Chrome中如何覆盖网站禁用右键与复制的jQuery函数?
解除网站右键菜单与复制粘贴限制的JavaScript方案
嘿,我来帮你搞定这个头疼的限制!网站用了多层原生JS+jQuery事件绑定锁死了右键和复制粘贴,只重置oncontextmenu肯定不够,咱们得把所有绑定的限制都清掉才行。
核心问题分析
你之前尝试设oncontextmenu = null没生效,是因为网站同时做了这几件事:
- 给原生
document对象直接赋值了oncontextmenu禁用函数 - 通过jQuery绑定了
mousedown事件,专门检测右键点击并阻止 - 给
body绑定了cut/copy/paste事件,阻止剪贴板操作 - 还额外给
body绑定了contextmenu事件二次禁用右键
一次性解除所有限制的代码
直接在你的Chrome扩展里运行这段JavaScript代码就行(它会覆盖网站的所有限制):
// 重置原生右键菜单事件,允许右键弹出 document.oncontextmenu = function() { return true; }; // 解除jQuery绑定的mousedown事件(移除右键点击的检测与阻止) $(document).off('mousedown'); // 解除body上绑定的所有剪贴板操作限制(cut/copy/paste)和右键限制 $('body').off('cut copy paste contextmenu');
为什么这段代码能生效?
document.oncontextmenu = function() { return true; }:直接覆盖网站给原生document设置的禁用函数,让右键菜单能正常触发$(document).off('mousedown'):移除网站通过jQuery绑定的鼠标按下事件,这样右键点击时不会再弹出警告并阻止$('body').off('cut copy paste contextmenu'):一次性解绑body上所有和剪贴板、右键相关的限制事件,让复制粘贴和右键操作恢复默认行为
如果网站用了jQuery的noConflict模式(也就是$不能用),把代码里的$换成jQuery就行,比如jQuery(document).off('mousedown')。
内容的提问来源于stack exchange,提问作者Margue




