gpt4 book ai didi

javascript - 对于 Greasemonkey 中的这个 jQuery 示例,为什么会触发 alert() 但不会触发 console.log()?

转载 作者:行者123 更新时间:2023-11-30 13:20:30 25 4
gpt4 key购买 nike

对于此测试 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com