随着越来越多的网站添加粘贴拦截代码随着越来越多的人使用密码管理器,电子邮件和密码字段的类型也变得越来越多,两者之间的冲突也日益严重。
虽然有扩展,例如不要乱用浆糊对于 Chrome 或禁用剪贴板操作以及对 FireFox 的dom.event.clipboardevents.enabled
偏好†,所有这些都存在一个问题,即是网站可能想要加入的合法原因onpaste
(例如 Google docs 富文本支持或 Facebook 的链接处理)所以我不希望完全禁用该功能。
† 前往about:config
并搜索dom.event.clipboardevents.enabled
然后双击切换。
另一种选择是手动破解你发现的每个含有违规代码的页面,但这很麻烦,而且并非在所有情况下都有效(例如这一页)关于如何做到这一点的一个建议可以在 Martin Brinkmann 的将密码粘贴到互联网上被阻止的表单字段中页。
理想情况下,我只希望能够将“重新启用此页面上所有字段的粘贴”作为按钮或页面的上下文菜单选项,那么有什么办法可以做到这一点吗?
我发现最接近的作品是 Derek Prior 的重新启用烦人的 Web 表单上的密码粘贴功能但这使用与手动方法相同的方法,因此无法处理我遇到问题的特定页面,而且我不知道还有多少其他方法可用。
答案1
具有此粘贴阻止功能的 Web 表单可以通过使用文本框的 onpaste 属性或通过 JavaScript 或 jQuery 绑定事件来声明性地实现它。
与你所说的相反,我能够得到Derek Prior 的书签在 Chrome 上工作(Windows 版本 39)密码文本框中具有属性 (type="password" onPaste="return false") 的页面
您也可以尝试Chris Bailey 的书签它可以破坏通过 JavaScript 实现的粘贴阻止程序。
这有点麻烦,但另一种方法是暂时禁用该页面的 JavaScript,从而关闭 JavaScript 粘贴阻止程序。对于 Chrome,打开 Dev Tools 的键盘快捷键是 F12,进入“设置”面板的快捷键是 F1,在这里您会在“常规”部分找到“禁用 JavaScript”复选框。
答案2
对于使用 jquery 的页面(基本上所有网页)。您可以将以下 javascript url 粘贴到地址栏中
javascript:void($('input').attr('onpaste', ''));
答案3
看来自从我问了这个问题以来,原来的不要乱用浆糊Jacob Swanner 的延伸已经有很大进步,而 Aaron Raimist 也将其移植到 Firefox。
两者现在都允许在每个站点上启用此功能,尽管它没有自动地修复有问题的问题宠物星球我提到的网站,手动启用它现在确实可以解决该网站上的问题。
答案4
请注意,有些浏览器会默默删除
javascript:
部分代码。因此,请确保地址栏中的代码与下面的代码完全一致(手动输入javascript:
),否则将无法正常工作
对于您在问题中提到的特定网站,请使用以下代码
javascript:void($('#pwd, #pwd2').unbind('paste'));
对于几乎所有其他网站,请将以下 JavaScript 代码粘贴到地址栏中
javascript:void(document.querySelectorAll("input").forEach(function(element){element.setAttribute("onpaste","")}));