Надстройка FireFox, заставляющая исчезать значки панели инструментов

Я только что закончил свое первое дополнение FF. Но после установки существующие значки панели инструментов исчезают.

Вот как выглядит мой файл chrome.manifest.

content myext content/ 
overlay chrome://browser/content/browser.xul    chrome://myext/content/overlay.xul
locale  myext   en-US   locale/en-US/
skin    myext   classic/1.0 skin/
style       chrome://browser/content/browser.xul chrome://myext/skin/overlay.css
style chrome://global/content/customizeToolbar.xul chrome://myext/skin/overlay.css

Любые идеи, почему это происходит?

Дайте мне знать, если мне нужно опубликовать содержимое дополнительных файлов.

Спасибо

Изменить: overlay.xul >

<?xml version="1.0"?> 
<?xml-stylesheet href="chrome://myext/skin/overlay.css" type="text/css"?> 
<!DOCTYPE overlay SYSTEM "chrome://myext/locale/overlay.dtd"> 
<overlay id="myext-overlay" 
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 

    <script src="loader.js"/>
    <script src='jquery.js'/>
    <script src="overlay.js"/>
    <script src="jquery.cookie.js"/>
    <script src="Jquery-ui.js"/>
    <script src="json2.js"/>
    <script src="script.js"/>


    <statusbar id="status-bar">
      <statusbarpanel role="button"
                        onmouseup="KH.bind_btn_click()"
                        tooltiptext="myext">
            <image src="chrome://myext/skin/icon.png" />
        </statusbarpanel>
    </statusbar>

</overlay> 

Структура каталога >

/content
    overlay.xul
    [otehr js files]
/locale
/skin
/chrome/manifest
/install.rdf

person Arshdeep    schedule 24.12.2010    source источник
comment
Покажите нам свою структуру каталогов и содержимое overlay.xul   -  person BrunoLM    schedule 24.12.2010
comment
Соответствующая часть вашего наложения будет полезна.   -  person Felix Kling    schedule 24.12.2010
comment
обновил вопрос с помощью overlay.xul.   -  person Arshdeep    schedule 24.12.2010
comment
Может быть проблема с jQuery. У меня тоже когда-то была проблема. Мой совет — не включать jQuery (или любой пользовательский JavaScript) в глобальное пространство (ваша надстройка должна создавать только несколько глобальных объектов, чтобы не связываться с другими надстройками).   -  person Felix Kling    schedule 24.12.2010
comment
@Felix любое предложение .. как я могу использовать jquery, не нарушая FF? ..   -  person Arshdeep    schedule 24.12.2010
comment
Как использовать jQuery в расширении Firefox: stackoverflow.com/q/491490/340760   -  person BrunoLM    schedule 24.12.2010


Ответы (2)


Некоторые из ваших файлов javascript нарушают работу Firefox.

Пространство имен в надстройках Firefox является глобальным, а это означает, что если вы используете имя чего-то, что уже существует, это вызовет конфликты. Вот сообщение в блоге о загрязнении глобального пространства имен< /а>.

Здесь вы можете найти простую статью о создании пространств имен для вашего дополнения.

person BrunoLM    schedule 24.12.2010

Если ваши сценарии попытаются получить доступ к DOM до того, как сработает событие загрузки, это вызовет привязку XBL на затронутых узлах до завершения загрузки оверлея. В частности, при привязке панели инструментов XBL пытается восстановить пользовательскую конфигурацию панели инструментов, однако для того, чтобы это работало, все наложения должны быть загружены, чтобы все кнопки были доступны в палитре. В Firefox 4 будет обходной путь в конкретном случае с панелью инструментов, но в целом вам все равно следует избегать доступа к DOM до события загрузки.

person Neil    schedule 10.01.2011