2

仕事でいくつかのタスク用に作成したカスタム Firefox 拡張機能を更新しようとしています。基本的には、さまざまな目的で iframe 内の Web ページの 1 つをプルアップするサイドバーです。Firefox 3 に移行すると、iframe がまったく表示されなくなります。

以下は、iframe を含む拡張機能固有のコードを含む XUL ファイルの例です。現在、Google を読み込もうとしているだけですが、何も動作しません。これを引き起こすFF3の変更についてオンラインで言及されているものは見つかりません。任意の提案をいただければ幸いです。

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

オーバーレイ 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>
4

2 に答える 2

2
  1. iframeにflex="1"を設定します
  2. サイドバーのXULコードはオーバーレイではなく、iframe内に読み込まれたドキュメントです(DOMインスペクターのFirefoxメインウィンドウを見てください)。したがって、ルート要素は<overlay>ではなく<page>である必要があります。これをflex="1"と組み合わせると、ページが表示されます。
  3. 通常、iframeにtype="content"またはtype="content-primary"を配置します。信頼できないページをロードする場合は間違いなくそうです。
于 2008-10-03T18:11:48.263 に答える
1

iframe に flex="1" を設定してみます。それでもうまくいかない場合は、iframe の代わりにbrowser要素を使用してみてください。

于 2008-10-03T13:34:46.047 に答える