0

我正在尝试在我的 GreaseMonkey 脚本中包含提示。为此,我将我的用户脚本定义如下:

// ==UserScript==
// @name           myscript
// @namespace      myscript
// @description    This is my script
// @require        http://plugins.learningjquery.com/cluetip/jquery.cluetip.js
// @require        http://plugins.learningjquery.com/cluetip/jquery.bgiframe.min.js
// @require        http://plugins.learningjquery.com/cluetip/jquery.hoverIntent.js
// @resource       jquery.cluetip.css http://plugins.learningjquery.com/cluetip/jquery.cluetip.css
// @include        http://mysite.com/*
// ==/UserScript==

(function(){
    function GM_init() {
        if(typeof unsafeWindow.jQuery == 'undefined') {
            window.setTimeout(GM_wait,100);
        } else {
            jQuery_init(unsafeWindow.jQuery);
        }
    }

    GM_init();

    function jQuery_init($) {
        $('a.testTitle').cluetip({splitTitle: '|'});
    }
})();

当我导入脚本时,它似乎可以很好地导入,并且我的 config.xml 以以下条目结尾:

<Script filename="myscript.user.js" name="myscript namespace="myscript" description="This is my script" enabled="true" basedir="myscript">
    <Include>http://mysite.com/*</Include>
    <Require filename="jquerycluetip.js"/>
    <Require filename="jquerybgiframemin.js"/>
    <Require filename="jqueryhoverintent.js"/>
    <Resource name="jquery.cluetip.css" filename="jquerycluetip.css" mimetype="text/css"/>
</Script>

安装脚本后,我看到引用的要求和资源已根据 myscript 文件夹中的条目下载并重命名。

当我加载页面时 myscript 没有运行。我尝试重新启动 Firefox,卸载并重新安装脚本并设置警报以确保脚本没有运行。我不知道出了什么问题。有人有解决方案吗?

有关信息,JQuery 已包含在页面中,因此我不需要它。如果我从 config.xml 中删除所有线索提示条目,请删除函数调用,重新启动 Firefox,然后尝试使用标准 JQuery 修改链接一切正常。

注意:我也尝试将 JQuery 添加到 @Require 列表中。这意味着我的脚本加载,但在第一个线索提示函数调用时失败。

4

1 回答 1

0

我发现如果我导入 JQuery 而不是使用该GM_init方法并删除所有 GM_init 代码,它会起作用:

// ==UserScript==
// @name           myscript
// @namespace      myscript
// @description    This is my script
// @require        http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// @require        http://plugins.learningjquery.com/cluetip/jquery.cluetip.js
// @require        http://plugins.learningjquery.com/cluetip/jquery.bgiframe.min.js
// @require        http://plugins.learningjquery.com/cluetip/jquery.hoverIntent.js
// @resource       jquery.cluetip.css http://plugins.learningjquery.com/cluetip/jquery.cluetip.css
// @include        http://mysite.com/*
// ==/UserScript==

$(function() {
    $('a.testTitle').cluetip({splitTitle: '|'});
})();

我宁愿避免进行此更改并继续使用该GM_init方法。但至少我有一个解决方法。

于 2009-09-27T16:38:37.663 回答