是否可以将Greasemonkey用户脚本拆分为多个文件?

时间:2012-01-01 20:54:09

标签: split greasemonkey multiple-files

我正在创建一个非常大的Greasemonkey用户脚本。

我可以将它拆分成几个较小的文件吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:15)

是的,在Greasemonkey中,它相当容易。如果要将脚本拆分为i18n.jsutils.js和主脚本体(并在原始脚本中按顺序放置),只需将脚本标题更改为如下所示:< / p>

i18n.js

var hello = 'bonjour!';

utils.js

function say(msg) { alert(msg); }

my.user.js

// ==UserScript==
// @name           My nifty script
// @namespace      Your unique author identifier
// @require        i18n.js
// @require        utils.js
// ==/UserScript==

say(hello);

...并且Greasemonkey将下载并安装所有三个文件,按照@require语句(主脚本最后)列出的顺序将它们连接起来,并照常执行。将它们放在您分发它们的服务器上的同一目录中,或者确保在@require语句中将完整的URL提供给它们驻留在网络上的位置。

答案 1 :(得分:-2)

当然可以。例如,如果您使用Greasemonkey作为Mozilla插件,那么在config.xml中您可以使用<Require>

<UserScriptConfig>
    <Script filename="babelfish.yahoo.com.js" name="Babel Fish" namespace="html"  basedir=".">
        <Include>http://babelfish.yahoo.com/*</Include>
        <Require filename="document.js"/>
        <Require filename="cookie.js"/>
        <Resource name="babelfishCSS" filename="babelfish.yahoo.com.css" mimetype=""/>
    </Script>
...

document.jscookie.js都应与babelfish.yahoo.com.js位于同一文件夹中。

如果引擎使用文件内注释,则使用@require指令:

// ==UserScript==
// @description This script automatically recovers the language selection.
// @include     http://babelfish.yahoo.com/*
// @require     cookie.js
// @require     document.js
// @resource    babelfishCSS babelfish.yahoo.com.css
// ==/UserScript==