XaraX: XUL - Referenz auf die Sidebar?

Beitrag lesen

Hallo Ingo,

gerade, ist mir aufgefallen, daß es unter den Archiven in /usr/lib/mozilla/chrome kein JavaScript gibt, welches die Funktion definiert. Jedenfalls wird in der browser.js des FF (sitze selbst gerade an einer zu gestaltenden Oberfläche für FF) die Funktion definiert:

  
function toggleSidebar(aCommandID, forceOpen) {  
  
  var sidebarBox = document.getElementById("sidebar-box");  
  if (!aCommandID)  
    aCommandID = sidebarBox.getAttribute("sidebarcommand");  
  
  var elt = document.getElementById(aCommandID);  
  var sidebar = document.getElementById("sidebar");  
  var sidebarTitle = document.getElementById("sidebar-title");  
  var sidebarSplitter = document.getElementById("sidebar-splitter");  
  
  if (!forceOpen && elt.getAttribute("checked") == "true") {  
    elt.removeAttribute("checked");  
    sidebarBox.setAttribute("sidebarcommand", "");  
    sidebarTitle.setAttribute("value", "");  
    sidebarBox.hidden = true;  
    sidebarSplitter.hidden = true;  
    content.focus();  
    return;  
  }  
  
  var elts = document.getElementsByAttribute("group", "sidebar");  
  for (var i = 0; i < elts.length; ++i)  
    elts[i].removeAttribute("checked");  
  
  elt.setAttribute("checked", "true");;  
  
  if (sidebarBox.hidden) {  
    sidebarBox.hidden = false;  
    sidebarSplitter.hidden = false;  
  }  
  
  var url = elt.getAttribute("sidebarurl");  
  var title = elt.getAttribute("sidebartitle");  
  if (!title)  
    title = elt.getAttribute("label");  
  sidebar.setAttribute("src", url);  
  sidebarBox.setAttribute("src", url);  
  sidebarBox.setAttribute("sidebarcommand", elt.id);  
  sidebarTitle.setAttribute("value", title);  
  if (aCommandID != "viewWebPanelsSidebar") { // no searchbox there  
    // if the sidebar we want is already constructed, focus the searchbox  
    if ((aCommandID == "viewBookmarksSidebar" && sidebar.contentDocument.getElementById("bookmarksPanel"))  
    || (aCommandID == "viewHistorySidebar" && sidebar.contentDocument.getElementById("history-panel")))  
      sidebar.contentDocument.getElementById("search-box").focus();  
    // otherwiese, attach an onload handler  
    else  
      sidebar.addEventListener("load", asyncFocusSearchBox, true);  
  }  
}  

Es ist also möglich mittels getElementById() auf das XUL-Objekt "broadcaster" zuzugreifen und die Eigenschaft hidden in einer if-Anweisung abzufragen.
Als Dokumentation habe ich bis jetzt die sites http://www.xulplanet.com/ und http://www.mozilla.org/projects/xul/ genutzt.

Gruß aus Berlin!
eddi

--
Ja - ich gebe manchmal Lösungen auf dem silbernen Tablett und
Nein - sie werden dennoch nicht den Schlag vor den Kopf mit dem goldenen abwehren ;)