Ответ сейчас "в основном".
Основные вещи работают, включая выбор, удаление и поиск. Я очень интенсивно использую 1.5.2 как внутри расширения, так и на страницах с содержанием.
$. Ready () также не работает, потому что jQuery предполагает и ожидает тело. Это коммит , который сломал его.
Некоторые вещи не работают, потому что, как описывает @Daniel, jQuery не может правильно определить, что он может и чего не может делать в XUL (более подробно ниже) Начиная с пошагового кода jQuery, который я обнаружил, вам нужно как минимум следующие строки в своем собственном коде.
// Workarounds for jQuery not properly testing support in XUL environment
// These are done at jQuery init
// This is actually critical, otherwise elements are not properly removed from the cache and you get a cache[id] is undefined
crowdmash.$.support.deleteExpando = true;
// These are done at ready(), but jQuery never fires ready in XUL
// XUL doesn't seem to support offsetWidth and offsetHeight (without this :hidden is broken which breaks fadeIn)
crowdmash.$.support.reliableHiddenOffsets = false;
crowdmash.$.support.opacity = true;
Если вы хотите использовать jQuery на странице содержимого из расширения, см. Мои подсказки .
jquery-xul изменяет 1.4.4 для лучшей работы с XUL. Я еще не пробовал, но, глядя на его изменения, он выглядит так, как будто он исправляет проблему. Я не знаю, решает ли это проблему поддержки.
В качестве фона вопроса $ .support. Проблема заключается в том, что функция обнаружения jQuery создает и затем заполняет его с помощью innerHTML. Div XUL не поддерживают innerHTML, поэтому код поддержки не помечает ничего как поддерживаемый. На самом деле есть билет, который открыт и обсуждается за 1,7 - http://bugs.jquery.com/ticket/5206.