FireFox Extension XulSchool - 添加事件和命令 - 关于加载功能

时间:2015-10-28 23:19:04

标签: firefox-addon firefox-addon-sdk xul xulrunner firefox4

我试图在本教程中编辑helloworld:

https://developer.mozilla.org/en-US/Add-ons/Overlay_Extensions/XUL_School/Getting_Started_with_Firefox_Extensions

所以,我需要在页面加载时执行一个函数,本教程的这一部分解释了如何做到这一点:

https://developer.mozilla.org/en-US/Add-ons/Overlay_Extensions/XUL_School/Adding_Events_and_Commands

我编辑了browserOverlay.js文件,我在代码末尾写了init函数和那个监听器:

/**
 * XULSchoolChrome namespace.
 */
if ("undefined" == typeof(XULSchoolChrome)) {
  var XULSchoolChrome = {};
};

/**
 * Controls the browser overlay for the Hello World extension.
 */
XULSchoolChrome.BrowserOverlay = {
  init : function(event) {
    window.alert('aaaaeeee');
  },
  /**
   * Says 'Hello' to the user.
   */
  sayHello : function(aEvent) {
    let stringBundle = document.getElementById("xulschoolhello-string-bundle");
    let message = stringBundle.getString("xulschoolhello.greeting.label");

    window.alert(message);
  }
};

window.addEventListener("load", function() {
  //window.removeEventListener("load", onFirefoxLoadEvent, false); // remove listener, no longer needed
  XULSchoolChrome.BrowserOverlay.init();
}, false);

我编辑了broserOverlay.xul,我在overlay标签上写了onload属性:

<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="chrome://global/skin/" ?>
<?xml-stylesheet type="text/css"
  href="chrome://xulschoolhello/skin/browserOverlay.css" ?>

    <!DOCTYPE overlay SYSTEM
      "chrome://xulschoolhello/locale/browserOverlay.dtd">

    <overlay id="xulschoolhello-browser-overlay"
      onload="XulSchoolChrome.BrowserOverlay.init();"
      xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

      <script type="application/x-javascript"
        src="chrome://xulschoolhello/content/browserOverlay.js" />

      <stringbundleset id="stringbundleset">
        <stringbundle id="xulschoolhello-string-bundle"
          src="chrome://xulschoolhello/locale/browserOverlay.properties" />
      </stringbundleset>

      <menubar id="main-menubar">
        <menu id="xulschoolhello-hello-menu" label="&xulschoolhello.hello.label;"
          accesskey="&xulschoolhello.helloMenu.accesskey;" insertafter="helpMenu">
          <menupopup>
            <menuitem id="xulschoolhello-hello-menu-item"
              label="&xulschoolhello.hello.label;"
              accesskey="&xulschoolhello.helloItem.accesskey;"
              oncommand="XULSchoolChrome.BrowserOverlay.sayHello(event);" />
          </menupopup>
        </menu>
      </menubar>

      <vbox id="appmenuSecondaryPane">
        <menu id="xulschoolhello-hello-menu-2" label="&xulschoolhello.hello.label;"
          accesskey="&xulschoolhello.helloMenu.accesskey;"
          insertafter="appmenu_addons">
          <menupopup>
            <menuitem id="xulschoolhello-hello-menu-item-2"
              label="&xulschoolhello.hello.label;"
              accesskey="&xulschoolhello.helloItem.accesskey;"
              oncommand="XULSchoolChrome.BrowserOverlay.sayHello(event);" />
          </menupopup>
        </menu>
      </vbox>
    </overlay>

它不会在页面加载时发出警报....为什么?

0 个答案:

没有答案