LeKuchen: XUL Browser Toolbar

Hallo zusammen,

ich bin dabei, mir eine Browsertoolbar für den Feuerfuchs (2.0.0.6) mit XUL bauen.

Dabei möchte ich mit Javascript auf ein XULElement meiner Toolbar zugreifen. Toolbar wird im Browser angezeigt, javascript wird ausgeführt. Leider liefert das JS (siehe unten) null zurück - das Element meiner Toolbar wird nicht gefunden.

Im DOM Inspector ist das Element aber vorhanden. Ebenfalls kein Problem ist es, mit dem Javascript auf andere Standard-XUL-Elemente des Browsers zuzugreifen, z.B. toolbar-menubar oder status-bar.

Nur meine Elemente sind nicht zugreifbar. Jemand eine Idee warum?

Interessanterweise funktioniert das ganze im Extension Developer Addon > XUL Editor.
Es funktioniert auch auf dem Rechner eines Freundes - nur auf zwei Rechnern bei mir nicht. Kann es irgednwas mit Sicherheitseinstellungen oder Updates des Firefox zu tun haben? Oder mit der browser.xul?

Mein Code sieht wie folgt aus:

(1) chrome.manifest
content mytoolbar chrome/content/
overlay chrome://browser/content/browser.xul chrome://mytoolbar/content/my-toolbar.xul

(2) my-toolbar.xul
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="mywindow" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<script type="text/javascript">
 <![CDATA[
 function test() {
  alert(document.getElementById('mytoolbar-button'));
 }
 ]]>
 </script>

<toolbox hidden="false">
  <toolbar id="mytoolbar-toolbar" mode="full">
                      <toolbarbutton id="mytoolbar-button" label="test" oncommand="test();"/>
  </toolbar>
 </toolbox>

</window>

Bin ziemlich ratlos,
LeKuchen

  1. Hallo LeKuchen,

    Ich sehe in deinem Code keinen Fehler. Nur dein "Overlay" sieht etwas merkwürdig aus. Wieso erstellt du ein eigenes Window? Wo ist dein <overlay>-Element?

    Was steht in der Javascript-Konsole?

    Jonathan