javascript - 如何在显示页面内容之前运行greasemonkey脚本?

标签 javascript firefox firefox-addon greasemonkey

我正在为 Firefox 编写一个插件,并使用 Greasemonkey 脚本来执行此操作(我使用此工具 http://arantius.com/misc/greasemonkey/script-compiler 编译用户脚本)。

问题是脚本在页面完全加载后运行。这意味着用户将看到原始形式的查看页面,然后脚本将应用我所做的更改。我的问题是有没有办法在页面内容显示给用户之前运行用户脚本,这样用户只会看到网站的最终版本?

最佳答案

编辑:这篇文章是在 Greasemonkey 中实现 @run-at 键之前创建的 - 正如 Blaise 所指出的,从 Greasemonkey 0.9.8 开始,您现在可以立即执行脚本页面开始加载。

@run-at document-start 在 wiki 中的描述如下:

Start is new as of version 0.9.8. The script will run before any document begins loading, thus before any scripts run or images load.

请注意,这意味着(可能)在创建 DOM 之前运行脚本,并且可能会导致一些不一致/异常的行为。您需要的不仅仅是这一行插入。

Greasemonkey Wiki 上有更多详细信息: http://wiki.greasespot.net/Metadata_Block#.40run-at

旁注:我必须提供的信息与浏览器中的 Greasemonkey 特别相关。我不确定 @run-at document-start 是否与脚本编译器配合得很好 - 我建议危险地生活..测试一下并找出答案! ;]

<小时/> <小时/>

当前无法在页面加载之前运行用户脚本。

要使用当前版本的 Greasemonkey 停止闪烁,您可以尝试将用户样式添加到您的 Firefox 配置文件(然后使用脚本撤消),如 Greasemonkey wiki 中所述。但这也要求您的每个用户都做同样的事情才能从中受益。

这是我渴望已久的东西,浏览 issue #1103在 Greasemonkey 的 Github 网站上,似乎已经制作了一个工作原型(prototype)(但据我所知,没有将其添加到发布版本的时间表)。

关于javascript - 如何在显示页面内容之前运行greasemonkey脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4978736/

相关文章:

javascript - 在javascript中实例化新对象时设置属性值

css - 1px margin 差异 FF & Opera vs Chrome (Mac)

firefox - 如何防止 NVDA 自动将焦点设置在最后使用的 HTML 元素上?

javascript - Firefox 的内部文本解决方案

javascript - 在 UInt64 上做数学就是解开它

javascript - 使用 JavaScript 有条件地打开表单提交页面

javascript - jQuery - 如何检测页面何时完成加载?

javascript - Kendo UI TreeView dataTextField 和 model.fields.text.from 之间的区别

javascript - Firefox 扩展中的对象字面量

javascript - 如何从 firefox 扩展程序在网页的命名空间(范围)中执行 javascript 代码?