如何将额外的 jQuery 插件嵌入到 Greasemonkey 中
-
22-07-2019 - |
题
因此,我已经能够让 Greasemonkey 和 jQuery 1.2.6 毫无问题地协同工作,但是,现在我想知道如何将其他 jQuery 插件嵌入到我的 Greasemonkey 脚本中,例如 Eric Martin 的 SimpleModal 插件(http://www.ericmmartin.com/projects/simplemodal/).
以下代码加载 jQuery,但我不确定如何正确加载 SimpleModal:
var GM_JQ = document.createElement('script');
GM_JQ.src = 'http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js';
GM_JQ.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(GM_JQ);
var GM_JQ_SM = document.createElement('script');
GM_JQ_SM.src = 'http://simplemodal.googlecode.com/files/jquery.simplemodal-1.2.2.min.js';
GM_JQ_SM.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(GM_JQ_SM);
// Check if jQuery's loaded
function GM_wait() {
if(typeof unsafeWindow.jQuery == 'undefined') {
window.setTimeout(GM_wait,100);
}
else {
$ = unsafeWindow.jQuery;
}
}
GM_wait();
有人有主意吗?谢谢。
解决方案
首先,如果你确定有没有萤火虫调试访问包括jQuery的最简单的方法是使用需要设置:
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js
// @require http://ajax.googleapis.com/ajax/libs/jqueryui/1.5.2/jquery-ui.min.js
随着该行可以包括其他外部脚本。大部分的jQuery插件所不具备的,如jQuery的API,但你可以自己主持它。
使用需要,您还可以转储所有加载代码,并简单地去:
$(document).ready( function() { ... });
萤火将报告错误,但你将无法步入调试器。
此外,一旦你有jquery的加载可以加载其他项,像这样:
$('head').append("<link href='http://www.somewebsite.com/styles.css' type='text/css' rel='stylesheet'>");
其他提示
另请查看 GreaseMonkeyWiki 页面 在 GreaseMonkey 脚本中使用 JQuery 并在 @require 块。
不隶属于 StackOverflow