我正在尝试在我的GreaseMonkey脚本中包含cluetip。为此,我已按如下方式定义了我的用户脚本:
// ==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中删除所有cluetip条目,删除函数调用,重新启动Firefox,只需尝试使用标准JQuery修改链接一切正常。
注意:我也尝试将JQuery添加到@Require列表中。这意味着我的脚本加载,但在第一个cluetip函数调用时失败。
答案 0 :(得分: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
方法。但至少我有一个解决方法。