greasemonkey和jquery无法正常工作

时间:2012-11-22 05:39:34

标签: jquery greasemonkey sandbox jquery-get

我在GM 1.5中使用jQuery,发现我无法使用.get

我需要http://code.jquery.com/jquery.js

我的代码就是这个

this.$ = this.jQuery = jQuery.noConflict(true);

$(document).ready(function () {
    $.get('index.php',function () {
        console.log('yay');
        console.log($(this).html());

    });
});

我确信我之前的版本能够做到这一点,这是否与沙箱更改有关?

1 个答案:

答案 0 :(得分:1)

问题中的代码运行正常。在Windows XP和Windows 7上使用Greasemonkey 1.5和Firefox 16和17进行验证。

回复:

  

唉,现在我被告知GM_setValue不存在。我不认为它是GM_函数和jQuery功能之间的选择


  1. 您无需选择。不要注入jQuery(或大多数其他库)使用@require。然后,使用正确的@grant指令,您可以轻松使用GM_函数。

  2. this.$ = this.jQuery = jQuery.noConflict(true);等代码没有意义,除非您使用@grant none - 这会关闭GM_个功能。

  3. 除非您使用$(document).ready(),否则Greasemonkey脚本中不需要
  4. @run-at document-start


  5. 所以,使用这样的代码:

    // ==UserScript==
    // @name     YOUR_SCRIPT_NAME
    // @include  http://YOUR_SERVER.COM/YOUR_PATH/*
    // @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
    // @grant    GM_getValue
    // @grant    GM_setValue
    // @grant    etc., etc.
    // ==/UserScript==
    
    $.get ('index.php', function () {
        console.log ('yay');
        console.log ($(this).html () );
    } );