如何处理mozilla firefox插件的首选项和界面?

时间:2010-12-09 08:51:32

标签: firefox-addon xul

我想问一些问题: 我应该采取哪些措施在mozilla firefox上创建界面并处理所有这些界面。 我想做的接口是:

  1. 由标签和图片组成的状态栏,如果右键菜单上的状态栏将显示活动插件(插件菜单无效隐藏)和首选项。

  2. 右键单击当前网页,在浏览器上将显示上下文菜单“terjemahkan”,左上角有图片。

  3. 当我选择工具菜单上的选项按钮>>插件,用户可以使用单选按钮调整这些插件设置

  4. 选择上下文菜单后,浏览器窗口将显示所需的结果

  5. 我所做的步骤是:

    我成了状态栏,但为什么我按照指示制作时不想出现的图片。以及在上下文菜单中,图像不能像一般情况一样出现在菜单的左上角。

    <?xml version="1.0"?>
    
    <overlay id="inline_trans"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    xmlns:html="http://www.w3.org/1999/xhtml">
    
    <!--
      <script type="application/x-javascript" src="chrome://translator/content/script.js" />
      <script type="application/x-javascript" src="chrome://translator/content/interface.js" />
    
    -->
        <!-- menu klik kanan pada halaman web -->
    
        <popup id="contentAreaContextMenu">
            <menuseparator />
            <menuitem id="intransContextMenuPage"
             image="chrome://inlinetrans/skin/imagesOn_kecil.png"
             label="terjemahkan dengan intrans"
             oncommand="inline.script.getText()" />
        </popup>
    
        <!-- pilihan menu pada status bar -->
    
    <popupset>
      <menupopup id="intransContextMenu">
        <menuitem label="intrans nonaktif"
         image="chrome://inlinetrans/skin/imagesOff_kecil.png"
         hidden="true"/>
        <menuitem label="intrans aktif"
         image="chrome://inlinetrans/skin/imagesOn_kecil.png"
         hidden="false"/>
        <menuseparator />
        <menuitem label="preferensi"/>
      </menupopup>
    </popupset>
    
    <!-- ========================================= -->
    
    <!-- statusbar-->
    
        <statusbar id="status-bar">
          <statusbarpanel id="status-bar-intrans"
           image="chrome://inlinetrans/skin/imagesOn_kecil.png"
           label="intrans"
           context="intransContextMenu"
           tooltiptext="intrans versi 1.0"
           />
        </statusbar>
    </overlay> 
    

    用户界面选项偏好设置

        <?xml version="1.0"?>
        <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
    
        <!DOCTYPE overlay SYSTEM "chrome://inlinetrans/locale/options.dtd">
    
        <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
          id="translate-preferences"
          title="&options.title;"
          buttons="accept, cancel"
          style="padding:0px; margin:0px;"
          ondialogaccept="options.save()"
          onload="options.init();"
          onunload="options.deconstruct();">
    
        <!--
          <stringbundleset id="stringbundleset">
            <stringbundle id="locale-properties" src="chrome://translator/locale/translator.properties"/>
            <stringbundle id="properties" src="chrome://translator/content/translator.properties"/>
          </stringbundleset>
        -->
    
       <!--
          <script src="chrome://inlinetrans/content/options.js" />
    
       -->
    
          <description value="&options.desc;"
            style="
            background: #fff url('chrome://inlinetrans/skin/options.png') no-repeat;
            min-width:400px;
            min-height:40px;
            padding-left:55px;
            padding-top:10px;
            margin:0px;
            border-bottom: 2px solid #757575;
            font-size:1.5em;"/>
    
          <vbox style="padding:10px;">
            <groupbox>
              <caption label="&options.ui;"/>
              <label value="&options.results.desc;"/>
            <radiogroup id="display.results" style="padding-left:20px;">
              <radio id="results.cat" value="category" label="&options.results.cat;"/>
                  <radio id="results.noncat"  value="noncategory" label="&options.results.noncat;"/>
              </radiogroup>
            </groupbox>
         </vbox>
        </dialog>
    

    对我来说最令人困惑的是我如何处理所有处理程序界面。

    例如:

    1. 更改插件的状态,从活动状态更改为非活动状态

    2. 获取所选单选按钮的值

1 个答案:

答案 0 :(得分:1)

我无法回答你的所有问题,部分原因是因为我不知道你想要什么,但这是一个开始:

  • 要显示菜单项旁边的图像,您必须将该组menuitem-iconic作为described in the documentation

    <menuitem id="intransContextMenuPage"
     class="menuitem-iconic"
     image="chrome://inlinetrans/skin/imagesOn_kecil.png"
     label="terjemahkan dengan intrans"
     oncommand="inline.script.getText()" />
    
  • 我不确定状态栏,我会关注the description in the documentation

      

    以下类可用于为元素设置样式。应该使用这些类而不是直接更改元素的样式,因为它们更适合用户选择的主题。

         

    statusbarpanel-iconic
      使用此类可以在状态栏面板上显示图像。使用src属性指定图像。将显示图像而不是标签。

  • 您可以通过获取对radiogroup的引用来获取所选单选按钮的值,访问其属性selectedItem,该属性为您提供radio元素并阅读{ {3}}属性:

    var value = document.getElementById('display.results').selectedItem.value;