0

用户脚本被 Greasemonkey 等附加组件使用。但是如何在我的站点中使用这些脚本?

例如,我发现一个脚本可以消除视频中的广告,我想把这个脚本放在我的网站上,这样我网站上的人就不会看到这些广告

我试图保存并将其放入<script>头部,但出现了问题。( TypeError: document.body is null)

我之前也试过放</body>,这次没有报错,但是还是不行。

我想知道 Greasemonkey 是如何工作的?它只是在网页中插入脚本吗?它如何将脚本加载到页面中?

4

1 回答 1

3

Greasemonkey 和 Userscripts.org 旨在为浏览器提供一种轻量级的扩展,而不是为网页。即,您在浏览器中以用户身份安装它们。

一些琐碎的脚本可能会被合并到网页中,但总的来说,Greasemonkey 有一些“超能力”可以做普通 JavaScript 由于安全限制而无法做的事情。例如,发出(和读取)跨域的响应、XMLHttpRequest来自不同来源的帧之间的交互等。

通常,Greasemonkey 脚本在被DOMContentLoaded浏览器触发时执行(这可以使用@run-at指令更改以在加载任何内容之前执行脚本)。

如果脚本@grant none在其 GM 元部分中,那么它可能会被合并到您的站点中,但这取决于它的确切作用。

还要记住 Greasemonkey 是一个 Firefox 扩展(Chrome 有等效的扩展,还有一些来自 Chrome 和 Opera 的有限原生支持)。许多用户脚本在 IE8 中可能会失败。

于 2013-07-23T12:52:20.540 回答