如何在网页上运行任何内联脚本之前运行用户脚本?
Posted
技术标签:
【中文标题】如何在网页上运行任何内联脚本之前运行用户脚本?【英文标题】:How can I run a user script before any inline scripts run on a webpage? 【发布时间】:2011-02-05 20:06:02 【问题描述】:我想为 Firefox 制作一个在页面上的脚本之前运行的greasemonkey 类型脚本。 Greasemonkey 脚本在页面上的脚本之后运行,所以这不起作用。我需要这个的原因是因为我想编辑页面上的一个脚本。具体来说,我想删除一个强制页面加载到框架内的脚本,因为框架内的页面会中断 F5(按 F5 会使页面跳回首页而不是重新加载当前页面)。此外,我不想通过带有 AJAX 的代理加载页面,并且切换到 chrome/opera 也不是一种选择。我在想也许 Jetpack 附加组件会起作用,但它似乎只有与greasemonkey 使用的事件相同的事件,即 DOMContentLoaded。有什么想法吗?
【问题讨论】:
IF Opera 是一个选项,您可以简单地将*.user.js
文件重命名为 *.js
,它甚至会在任何内容开始加载之前运行。跨度>
我知道,但我不使用 Opera 作为我的浏览器。由于我已经高度定制了Firefox,因此切换并仍然拥有我想要的一切可能是不可能的。为一个站点安装和使用另一个浏览器似乎有点傻。
【参考方案1】:
[edit 2013] 将附加 SDK 的 page-mod 模块与 contentScriptWhen
= start
一起使用。
老: 是的,只有较新的 Firefox 版本(当前为 3.7 版本,以后可能会添加到 3.6.x)支持在指定内容的脚本之前运行自定义脚本。我wrote a prototype Jetpack-SDK module 以利用新通知。
它是
【讨论】:
有趣。我会看看我是否能弄清楚如何让它工作。该脚本是一个内联脚本。 您能否添加对示例的引用以执行@Telanor 的要求?以上是关于如何在网页上运行任何内联脚本之前运行用户脚本?的主要内容,如果未能解决你的问题,请参考以下文章