[英]how to add a jquery plugi for firefox-extension-developlment using add-on builder
[英]Porting Chrome extension using jQuery to Firefox SDK Add-on
我的Chrome擴展程序在后台頁面中使用jQuery,用於jQuery.extend()
, jQuery.ajax()
, jQuery.deferred()
(不是DOM操作的東西,在后台頁面中沒有意義) 。
將此代碼遷移到Firefox SDK插件中 ,沒有后台window
對象(jQuery需要使用該window
對象),因此類似
var $ = require('../3rdparty/jquery.min')(window);
這就是jQuery在類似CommonJS的環境中的工作方式,但由於jQuery本身拋出jQuery requires a window with a document
異常jQuery requires a window with a document
,因此失敗。
有什么方法可以在基於Firefox SDK的附加組件中使用jQuery? Page Workers看起來很有前途,但是我無法掌握底層的window
對象。
安迪
這有效:
var {Cc, Ci} = require("chrome");
_window = Cc["@mozilla.org/appshell/appShellService;1"]
.getService(Ci.nsIAppShellService).hiddenDOMWindow;
$ = require('../3rdparty/jquery')(_window);
但是,我不得不修補jQuery(2.1.3)本身,將3441行更改為
window.setTimeout( jQuery.ready );
我有理由相信這是一個jQuery錯誤。
謝謝安迪! 好像工作得很漂亮!
當我得知您必須對jQuery進行一些修改時,我開始提交修復程序,但事實證明有人已經這樣做了!
https://github.com/jquery/jquery/commit/842958e7aecd0d75a7ee9e2aaec83457701aa2f3
它已經在jQuery 3.0.0-alpha1中發布了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.