Firefox-有什么方法可以防止表单字段的 onload 焦点?

Firefox-有什么方法可以防止表单字段的 onload 焦点?

是否有任何 Firefox 扩展或内置配置可以允许禁用文本字段中的 onload 聚焦?

我不想禁用 javascript。我只是厌倦了某些网站在我不想搜索时自动将焦点放在搜索框中。

令人烦恼的是,如果我正在与工具栏或其他任何内容交互,焦点会立即转到搜索框。然后我需要将鼠标移回工具栏或我正在做的其他事情。

通常我不会认为这是个问题。但一般情况是这样的:打开新标签,点击工具栏,开始输入。页面加载到一半时,我输入的内容有一半出现在搜索框中,而不是工具栏中。每天大约发生 200 次……

答案1

您可以使用 NoScript 插件,这有点像用大锤杀死蚂蚁,或者您可以尝试这个 greamonkey 脚本:

// ==UserScript==
// @name           Stop Google Stealing Focus
// @namespace      http://googlesystem.blogspot.com
// @include        http://www.google.*/
// @include        http://www.google.*/ig*
// ==/UserScript==

(function () {
    document.body.setAttribute('onload',''); 
})();

这对我来说很有效——但谁知道它是否还有其他副作用?

答案2

附加组件维姆FX(允许您使用键盘控制浏览器)有一个选项可以防止文本字段自动聚焦,这个选项在我迄今为止测试过的所有网站上都有效。

由于 VimFX 会对界面进行一些重大更改,因此它可能有点过度(除非您无论如何都在使用它)或干扰其他附加组件。您可能可以禁用其所有其他功能,但我还没有测试过这一点。如果有人有兴趣将其变成独立插件,这里是引入该功能的相关补丁。

答案3

我不知道具体是什么原因,但是由于greasemonkey脚本在DOM填充后立即运行,但在调用onload事件处理程序之前(如http://greasemonkey.mozdev.org/authoring.html)您可以编写一个脚本来禁用或更改您想要从中删除该行为的站点的 onload 事件。

不过,您必须在每个站点上执行此操作,因为有些站点在 onload 事件期间所做的不仅仅是重新聚焦,而且您可能希望运行其他行为。

对于在页面呈现时直接进行重新聚焦的网站,这也不起作用(通过直接在 <SCRIPT> 块中调用焦点方法,而不是在 onload 事件调用的代码中调用)。

也许值得一试http://userscripts.org/查看您想要改变其行为的网站是否存在现有脚本。

答案4

维美拉有一个选项可以防止焦点被窃取。(选项 > 显示高级选项 > 不让页面在加载时窃取焦点)。

如果您希望摆脱使用 Vimium 的主要副作用(类似 vim 的键绑定 - 尽管它们很有用!),您可以将其放置unmapALL在“自定义键映射”部分。

相关内容