![](/img/trans.png)
[英]Javascript: Why sometimes alert() does not work but console.log() does?
[英]Why does alert() fire but not console.log() for this jQuery in Greasemonkey example?
對於此測試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手冊中所述,在GreaseMonkey腳本中,腳本的全局上下文不是瀏覽器的真實窗口對象(與在頁面上執行的實際腳本不同),而是具有相同API的窗口對象的虛擬版本。
console
對象是真實窗口上的全局變量,因此無法從GreaseMonkey(或至少從GreaseMonkey上的jQuery)訪問。
有關GreaseMonkey下console
內容的說明以及如何從GreaseMonkey記錄消息,請參閱此頁面。
如果頁面本身沒有任何<script>
標簽,那可能是因為Firebug注入控制台對象的愚蠢方式 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.