2008-10-03 8 views
2

J'essaie de mettre à jour une extension firefox personnalisée que j'ai créée pour certaines tâches au travail. Fondamentalement, c'est une barre latérale qui tire vers le haut l'une de nos pages Web dans un iframe à des fins diverses. En passant à Firefox 3, l'iframe n'apparaîtra pas du tout. Vous trouverez ci-dessous un exemple de fichiers XUL qui contiennent du code spécifique à une extension, y compris iframe, actuellement avec juste une tentative de chargement de google mais cela ne fonctionnera pas avec quoi que ce soit. Je ne trouve aucune mention en ligne de changements dans FF3 qui pourraient causer cela. Toute suggestion serait appréciée.Comment mettre à jour les extensions compatibles Firefox 2 en utilisant IFRAME vers Firefox 3?

<?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> 

Voici le fichier de surimpression XUL

<?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> 

Répondre

2
  1. Set flex = "1" sur le iframe
  2. Le code XUL pour la barre latérale n'est pas une superposition, il est un document chargé à l'intérieur d'un iframe (regardez la fenêtre principale de Firefox dans l'inspecteur DOM). L'élément racine doit donc être < page>, pas < overlay>. Ceci, combiné avec le flex = "1", devrait faire l'affichage de la page.
  3. Vous souhaitez généralement mettre type = "content" ou type = "content-primary" sur l'iframe. Certainement si vous chargez des pages non fiables.
+0

Le passage de "superposition" à "page" a corrigé le problème. J'ai remarqué dans le contrôle de version que j'avais eu flex = "1" dans le passé mais que je devais l'enlever pendant le dépannage, mais cela a simplement provoqué le blocage de l'élément. MERCI! –

1

Je voudrais essayer réglage flex = "1" sur le iframe. Si cela ne fonctionne pas, essayez peut-être avec l'élément browser au lieu de iframe.

Questions connexes