我想禁用所有网页通过lublessmonkey脚本(对于FF3.6)自动突出显示文本输入表单字段内容的功能。这是我的第一次尝试:
// ==UserScript==
// @name Prevent Auto-highlight
// @namespace quintopia
// ==/UserScript==
HTMLInputElement.prototype.select = function() {
//do nothing
}
但这是行不通的。是因为它在页面的其余部分之后加载,因此在创建输入字段后不会应用于输入字段吗?我是否需要手动遍历DOM,查找每个输入字段并手动覆盖其选择内容才能使其正常工作? (我没有尝试过,因为除非真的是最好的方法,否则我不会这样做。我要求以此学习做这种事情的“最佳”或“标准”方法。)
最佳答案
我认为您要尝试的是单击时停止自动选择整个输入字段吗?
使用if()过滤器将点击事件(或onFocus?)添加到整个页面中,以测试点击的目标是否是输入字段(以免循环和创建潜在的大量事件处理程序)您想要的。下一部分可以根据您的需要简单或优雅。
简单的方法是从事件处理程序中获取onTimeout()触发器(延迟100毫秒?),然后将光标移动到文本字段的末尾。这是一个竞争条件(取决于页面代码的运行速度超过计时器允许的速度),但这在大多数站点上都适用。
更复杂的方法是检测单击事件触发时鼠标在输入字段中的位置,并相应地放置光标,和/或改为特定于站点并覆盖/专门抵消要使用的确切页面/站点上的代码它在。