Tag: firefox addon

FireFox扩展:如何通过jQuery访问页面元素?

我使用以下代码: var myExtension = { init: function() { // The event can be DOMContentLoaded, pageshow, pagehide, load or unload. if(gBrowser) gBrowser.addEventListener(“DOMContentLoaded”, this.onPageLoad, false); }, onPageLoad: function(aEvent) { var doc = aEvent.originalTarget; // doc is document that triggered the event var win = doc.defaultView; // win is the window for the doc //alert(“page is loaded \n” […]

Greasemonkey @require jQuery不工作“组件不可用”

我在这里看到了另一个关于在Greasemonkey中加载jQuery的问题 。 尝试过该方法后,在我的==UserScript==标签内使用此require语句: // @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js 我仍然在Firefox的错误控制台中收到以下错误消息: Error: Component is not available Source File: file:///Users/greg/Library/Application%20Support/ Firefox/Profiles/xo9xhovo.default/gm_scripts/myscript/jquerymin.js Line: 36 这会阻止我的greasemonkey代码运行。 我已经确保在安装之前包含@require for jQuery并保存了我的js文件,因为只在安装时加载了所需的文件。 码: // ==UserScript== // @name My Script // @namespace http://www.google.com // @description My test script // @include http://www.google.com // @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js // ==/UserScript== GM_log(“Hello”); 我在我的Macbook Pro,Leopard(10.5.8)上的Firefox 3.5.7上安装了Greasemonkey 0.8.20091209.4。 我已经清除了我的缓存(除了cookie)并禁用了除Flashblock 1.5.11.2,Web Developer 1.1.8和Adblock Plus […]

覆盖默认的jQuery选择器上下文

我试图在Firefox扩展中使用jQuery,并且实际上想要使用jQuery来操作当前页面的DOM,而不是XUL文件的上下文。 因此,我在我的XUL文件中加载jQuery,并将其传递给沙盒中的一些脚本(使用Greasemonkey扩展编译器http://arantius.com/misc/greasemonkey/script-compiler )。 由于jQuery没有加载页面DOM,我想将其选择器上下文设置为页面DOM,而不是总是将其传递给jQuery调用。 我按照如何在Firefox扩展中使用jQuery的解决方案,它几乎实现了我想要的。 jQuery.noConflict(); $ = function(selector,context){ return new jQuery.fn.init(selector,context||example.doc); }; $.fn = $.prototype = jQuery.fn; 我可以调用jQuery()函数,页面DOM将用作上下文。 但是,我不能使用像jQuery.trim这样的函数,因为它们没有定义。 我认为这条线来自解决方案 $.fn = $.prototype = jQuery.fn; 将让我自己的jQuery对象inheritance所有jQuery原型属性,但显然不会。 给一个vanilla jQuery对象,如何重新定义它以使用某个元素作为选择器上下文,同时保留所有jQuery函数?