[gelöst] Wie ruft man ein Unterprogramm ab? (Add-on Builder)

  • Hallo,

    das folgende Beispiel erzeugt den Eintrag "Show MessageBox" im "Rechte-Maustaste-Menu" des
    Firefoxbrowsers, und wenn man auf den Menupunkt klickt, soll eine MessageBox mit der
    Nachricht "TEST" aufpoppen.

    Aber das erfolgreiche Aufrufen der Funktion "testSUB()" funktioniert nicht.

    -Was muss man an dem Code ändern, damit die Messagebox "TEST" erscheint.

    PS: wenn man in Zeile 7+8 den Doppelslash entfernt, funktioniert die Messagebox. Aber
    ich möchte nicht die Messagebox von Zeile 8 abrufen, sondern die Messagebox von Zeile 13.

    main.js (Code für den Add-On Builder: https://builder.addons.mozilla.org/user/private_addons/) :

    Einmal editiert, zuletzt von worel (21. Dezember 2011 um 18:26)

  • Mit diesem Code-Beispiel geht es jetzt:

    main.js :


    FRAGE:
    Wenn man die letzten vier Zeilen (gemeint sind die Zeilen des Unterprogramms testSUB() herausnimmt,
    im Add-on Builder unter "Lib" ein ganz neues Script (z.B. Module1.js) erstellt, und in Module1.js die vier Zeilen von
    testSUB() hineinbringt, funktioniert der Aufruf nicht mehr.

    -Wie bringt man dem "Add-on Builder" bei, dass er das Unterprogramm testSUB() in Module1.js finden
    und aufrufen kann?

  • Erst einmal musst du in dem anderen Modul die Methoden exportieren. Im Falle deiner Datei Module1.js schreibst du ans Ende:

    Code
    exports.testSUB = testSUB

    In der main.js musst du diese dann wieder einbinden, so wie du alle anderen APIs auch einbindest (Name entspricht dem Dateinamen des Moduls):

    Code
    var foo = require("Module1");

    Statt testSUB() rufst du dann foo.testSUB() auf.

    Kleiner Hinweis:
    https://addons.mozilla.org/en-US/developers/docs/sdk/1.3/ - da steht das alles drin, was ich dir erzähle. ;)