因此,我已经能够让 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 块。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top