2

我正在尝试更新为工作中的某些任务创建的自定义 firefox 扩展。基本上,它是一个侧边栏,可出于各种目的在 iframe 中拉出我们的一个网页。迁移到 Firefox 3 时,iframe 根本不会出现。

下面是一个 XUL 文件的示例,其中包含特定于扩展程序的代码,包括 iframe,目前只是尝试加载 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. The XUL code for sidebar is not an overlay, it's a document loaded inside an iframe (look at the Firefox main window in the DOM inspector). So the root element should be <page>, not <overlay>. This, combined with the flex="1", should make the page display.
  3. You usually want to put type="content" or type="content-primary" on the iframe. Definitely so if you load untrusted pages in it.
于 2008-10-03T18:11:48.263 回答
1

我会尝试在 iframe 上设置 flex="1" 。如果这不起作用,也许可以尝试使用浏览器元素而不是 iframe。

于 2008-10-03T13:34:46.047 回答