Wie Firefox 2 kompatibel Erweiterungen mit IFRAME zu Firefox 3 aktualisieren?
Frage
Ich versuche, eine benutzerdefinierte Firefox-Erweiterung zu aktualisieren, die ich für einige Aufgaben bei der Arbeit erstellt. Im Grunde ist es eine Seitenleiste, die für verschiedene Zwecke in einem -Frame einen unserer Webseiten nach oben zieht. Wenn zu Firefox 3 die iframe bewegen, werden nicht angezeigt.
Im Folgenden finden Sie ein Beispiel für die XUL-Dateien, die Erweiterung spezifische Codes einschließlich iframe enthält, die derzeit mit nur einen Versuch, Google zu laden, aber es wird nicht mit irgendetwas arbeiten. Ich kann keine Erwähnung Online-Änderungen in FF3 finden, die dies verursachen würde. Alle Vorschläge würden geschätzt.
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://customsidebar/skin/customsidebar.css" type="text/css"?>
<overlay id="customsidebar-Main" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://customsidebar/content/customsidebar.js"/>
<vbox flex="1">
<toolbar>
<vbox>
<hbox id="customsidebar_TopToolbarRow">
<toolbarbutton label="Refresh" id="customsidebar_Refresh" oncommand="customsidebar_Refresh()" />
</hbox>
<hbox>
<label control="customsidebar_StatusBox" value="Log"/>
<textbox id="customsidebar_StatusBox" multiline="true" rows="1" wrap="off" />
</hbox>
</vbox>
</toolbar>
<iframe id="customsidebar_Iframe" src="http://www.google.com" />
</vbox>
</overlay>
Hier ist die Overlay-XUL-Datei
<?xml version="1.0"?>
<overlay id="CustomSidebar-Overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<menupopup id="viewSidebarMenu">
<menuitem observes="viewCustomSidebar" />
</menupopup>
<broadcasterset id="mainBroadcasterSet">
<broadcaster id="viewCustomSidebar"
autoCheck="false"
label="CustomSidebar"
type="checkbox" group="sidebar"
sidebarurl="chrome://customersidebar/content/customersidebarMain.xul"
sidebartitle="CustomSidebar"
oncommand="toggleSidebar('viewCustomSidebar');"/>
</broadcasterset>
</overlay>
Lösung
- Stellen Sie flex = "1" auf dem iframe
- Der Code XUL für Sidebar ist kein Overlay, ist es ein Dokument ist in einem Iframe geladen (Blick auf das Firefox-Hauptfenster im DOM-Inspektor). Also das Wurzelelement sollte
, nicht . Dies, kombiniert mit der Flex = "1" ist, sollte die Seitenanzeige machen. - Sie wollen in der Regel type = "content" oder type = "Content-primary" auf dem iframe setzen. Auf jeden Fall so, wenn Sie daran nicht vertrauenswürdige Seiten laden.
Andere Tipps
Ich würde versuchen, auf dem iframe Einstellung flex = "1". Wenn das nicht funktioniert, versuchen Sie es vielleicht mit dem Browser Element anstelle von iframe.