1

このテストの Greasemonkey UserScript では、アラートがポップアップしますが、Firebug コンソールには何も記録されません。
これは、Firefox 12.0 の Greasemonkey 0.9.18 と Firebug 1.9.1 で発生します。

// ==UserScript==
// @name           test
// @namespace      tester12354
// @include        *
// @require        http://code.jquery.com/jquery-latest.min.js
// ==/UserScript==

(function($) {
    $.fn.tester1 = function(test) {
        alert(test);
        console.log(test);
    }
}(jQuery));


$.extend({
    tester2: function(test) {
        alert(test);
        console.log(test);
    }
});

alert($().jquery)
console.log($().jquery) 

$().tester1('from tester1');
$.tester2('from tester2');
4

2 に答える 2

2

GreaseMonkey マニュアルで説明されているように、GreaseMonkey スクリプトでは、スクリプトのグローバル コンテキストはブラウザの実際のウィンドウ オブジェクトではなく (ページ上で実行される実際のスクリプトとは異なります)、同じ API を持つウィンドウ オブジェクトのダミー バージョンです。

このconsoleオブジェクトは、実際のウィンドウではグローバル変数であるため、GreaseMonkey から (少なくとも、GreaseMonkey の jQuery からは) アクセスできません。

consoleGreaseMonkey の下で何が起きているか、および GreaseMonkey からのメッセージをログに記録する方法については、このページを参照してください。

于 2012-04-30T14:07:52.863 に答える
1

<script>ページ自体にタグがない場合は、Firebug がコンソール オブジェクトを挿入する愚かな方法が原因である可能性があります。

于 2012-04-30T10:20:18.817 に答える