CA DMV 有一个网站,它禁止以某种非标准方式粘贴,因为用于纠正此行为的标准技术(在 about:config 中为 Firefox、在 Firefox 或 Chrome 的扩展中设置正确的选项)均无效。当您尝试粘贴到一个不允许的字段中时,它会弹出一个对话框,显示“抱歉,此功能已禁用。”
这是怎么做的?
我该如何纠正?
已经提到了为什么会发生这种情况:本质上,input元素上有事件侦听器,用于检测和阻止右键单击和control按键事件。(展开下面的代码片段以查看执行此操作的函数。)
function whichButton(event, msg) {
if (event.button == 2)//RIGHT CLICK
{
alert(msg);
}
}
function noCTRL(e, msg) {
var code = (document.all) ? event.keyCode : e.which;
if (parseInt(code) == 17) //CTRL
{
alert(msg);
window.event.returnValue = false;
}
}Run Code Online (Sandbox Code Playgroud)
虽然已经提到的答案(防止keydown传播)解决了control关键问题,但它并没有重新启用右键单击。我会断言,解决这个问题的最简单的方法就是将事件侦听器调用的whichButton和noCTRL函数重新定义为空白。要做到这一点很简单:
whichButton = noCTRL = () => {}
Run Code Online (Sandbox Code Playgroud)
您可以将其包装在用户脚本中,如下所示:
// ==UserScript==
// @name Reenable Paste on CA DMV
// @match https://www.dmv.ca.gov/FIM/sps/uscfed/usc/self/account/create
// @grant none
// ==/UserScript==
whichButton = noCTRL = () => {}
Run Code Online (Sandbox Code Playgroud)
要使用用户脚本,您需要安装Tampermonkey或Greasemonkey。
| 归档时间: |
|
| 查看次数: |
202 次 |
| 最近记录: |