Вызовите Init из XUL после загрузки страниц (дополнение Firefox) - PullRequest
0 голосов
/ 18 марта 2010

Я работал над некоторым кодом в js / html, и он прекрасно работает. Сейчас я пытаюсь упаковать его в надстройку для Firefox, и у меня возникают некоторые проблемы с получением правильного XUL-документа.

обычный старый HTML / JS

В моем html-файле теста между <head></head> у меня есть:

<script type="text/javascript" src="js/MyCode.js"></script> 

В конце тестового файла перед </body> у меня есть:

<script type="text/javascript">MyCode.Static.Init();</script>

ДОБАВЛЕНИЕ ПОЖАРОФОКСА: OVERLAY.XUL

В файле overlay.xul в пакете расширений у меня есть:

        <?xml version="1.0"?>
    <overlay id="mycode"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
        <script type="application/x-javascript" src="chrome://mycode/content/MyCode.js"></script>
        <script>
window.addEventListener("load", function () { gBrowser.addEventListener("load",MyCode.Static.Init,true); }, false);
        </script>
    </overlay>

Кажется, это не входит в метод, но опять же, я даже не уверен, что слушатели правильно стреляют. Будет ли это правильным способом дублировать то, что я делал в простом старом html / js?

Ответы [ 4 ]

1 голос
/ 19 марта 2010

См .: https://developer.mozilla.org/en/Code_snippets/Progress_Listeners, чтобы узнать, как отследить все изменения / загрузки / перезагрузки страницы

0 голосов
/ 19 марта 2010

Вы уверены, что gBrowser готов? Для проверки работоспособности измените тег script на

 alert(gBrowser); 

чтобы убедиться, что gBrowser готов.

0 голосов
/ 19 марта 2010

Это правильно:

gBrowser.addEventListener ("load", function () {MyCode.Static.Init ();}, false);

0 голосов
/ 18 марта 2010

Как насчет:

<script>
  window.addEventListener("load", function () { MyCode.Static.Init(); }, false);
</script>

...