对于此测试Greasemonkey UserScript,警报会弹出,但没有任何内容记录到Firebug控制台 这是使用Greasemonkey 0.9.18和Firefox 12.0中的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');
答案 0 :(得分:2)
正如在GreaseMonkey manual中解释的那样,在GreaseMonkey脚本中,脚本的全局上下文不是浏览器的真实窗口对象(与在页面上执行的实际脚本不同),而是窗口的虚拟版本具有相同API的对象。
console
对象是真实窗口上的全局变量,因此无法从GreaseMonkey(或至少从GreaseMonkey上的jQuery)访问。
有关GreaseMonkey下console
的内容以及如何从GreaseMonkey记录消息的说明,请参阅此页。
答案 1 :(得分:1)
如果网页本身没有<script>
个标签,那可能是因为stupid way in which Firebug injects the console object。