对于此测试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');
最佳答案
如GreaseMonkey manual中所述,在GreaseMonkey脚本中,脚本的全局上下文不是浏览器的实际窗口对象(与在页面上执行的实际脚本不同),而是具有相同API的窗口对象的虚拟版本。console
对象是实际窗口上的全局变量,因此无法从GreaseMonkey(或至少从GreaseMonkey上的jQuery)访问。
请参阅此页面,以获取有关GreaseMonkey下console
的最新信息以及如何记录来自GreaseMonkey的消息的说明。
关于javascript - 为什么在Greasemonkey示例中针对此jQuery触发alert()而不触发console.log()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10377473/