2012-04-03 4 views
2

Я загрузил jQuery в аддон Firefox, который заставляет его загружать с помощью XUL's window.Как изменить контекст jQuery по умолчанию?

Я хочу изменить контекст по умолчанию, чтобы он использовал правильный объект window.

Классический пример, который я всегда вижу:

var $ = function(selector,context){ 
    return new jQuery.fn.init(selector,context|| correctWindow); 
}; 
$.fn = $.prototype = jQuery.fn; 

Но делать это я убить много функций, как .ajax, .browser ... мне нужны эти методы.

AMO не позволит мне создать обертку до jQuery, чтобы отправить правильный объект window.

Таким образом, мой единственный вариант - как-то изменить контекст jQuery по умолчанию без изменения его исходного кода.

Какие у меня варианты?

+0

возможно дубликат [Override по умолчанию JQuery селектор контекста] (http://stackoverflow.com/questions/3690447/override-default-jquery-selector-context) – BrunoLM

+0

Предыдущий ответ, который должен помочь:
HTTP: // StackOverflow .com/а/3690529/437226 – ramblinjan

ответ

1

На первом содержания сценария я добавил

var loader = Components 
    .classes["@mozilla.org/moz/jssubscript-loader;1"] 
    .getService(Components.interfaces.mozIJSSubScriptLoader); 

loader.loadSubScript("chrome://extensions/js/jquery-1.7.2.min.js"); 

var initjQuery = jQuery.fn.init; 
$.fn.init = function(s,c,r) { 
    c = c || window.document; 
    return new initjQuery(s,c,r); 
}; 

Этот способ работает.

Смежные вопросы