Javascript in einer Erweiterung

  • Ich habe einen Javascript Code und würde den gerne in meine Erweiterung einbinden. Jetzt habe ich den einfach in meine Xul Datei mit reingeschrieben, aber das ist wohl falsch.. :cry:

  • Dann gibt dir mir aber nen Fehler aus

  • Nein so ist es eigentlich nicht. Ich brauche einfach nur Hilfe!

    Ich gucke ja selber schon ob ich was herausfinde.

    So habe nun was herausgefunden:

    Das steht nun in meinm login.js, aber es passiert leider nix :(


    Seite ist http://sde.maedhros.com/server01/

  • Code
    <script type="application/x-javascript" src="login.js" />

    Nun geht das Javascript auch.


    Wie kann ich die function jetzt aufrufen?
    Den sie soll ja erst gehen, wenn die Seite: http://sde.maedhros.com/server01/index.php geladen wurde

    Xul-Datei:

  • Nun, erst einmal zeigt window auf das Browserfenster, nicht auf das Inhaltsfenster, dass du dir wie einen Frame vorstellen kannst. Das bekommst du mit content. Genauso ist das document, dass du suchst mit content.document erreichbar.
    Zweitens ist readyState IE-Quirks, den du im Firefox nicht finden wirst.
    Drittens kannst du dein (korrigiertes) Script so oder so beim Laden einer Seite ausführen.

  • wie kommst du den jetzt auf window?
    ich habe das doch nirgends stehen!


    Wenn ich das Beispiel nehme, was du herausgesucht hast dann kommt:

    Code
    window.addEventListener("load", function() { myExtension.init(); }, false);

    in die XUL und das:


    in die JS-Datei?

    Und das window durch content ersetzten. Sehe ich das so richtig?[/quote]

  • Zitat von Avalon

    wie kommst du den jetzt auf window?
    ich habe das doch nirgends stehen!

    alert und document sind dem window-Objekt untergeordnet.

    Zitat von Avalon

    Und das window durch content ersetzten. Sehe ich das so richtig?

    Der Code von MozillaZine ist schon richtig. window und document usw. in deinem alten Code haben aber halt auf das falsche Fenster und Dokument gezeigt.

    Außerdem solltest du myExtension natürlich durch den Namen deiner Erweiterung ersetzen...

  • Also das ist nun mein Code in der JS-Datei. Wenn eine Seite fertig geladen ist macht er immer schön ein alert. Aber er füllt leider das Loginteil nicht aus :(

    Habe schon mit:

    Code
    document.loginform.nic.value = nickname;
    doc.loginform.nic.value = nickname;
    content.document.loginform.nic.value = nickname;

    probiert, aber leider ohne Erfolg.

  • Code
    content.document.forms.namedItem("loginform").elements.namedItem("nic").value


    oder:

    Code
    doc.forms.namedItem("loginform").elements.namedItem("nic").value

    du solltest aber auch noch überprüfen, ob das überhaupt die richtige Seite ist. (Außerdem kann man sowas auch dem Firefox-Passwort-Manager überlassen.)

  • super, danke, soweit funktioniert alles!
    Es soll ja mehr machen, als nur ein Passwortmanager.
    Jetzt will ich die Logindaten aus einer Datei lesen. Das kann ich mit normalem Javascript oder muss ich da auch was beachten?

  • So nun habe ich eine xml Datei:

    Meine JS-Datei:

    Irgendwas stimmt nicht!

    Hilfeeeeeeeeeee :D

  • Javascript Konsole???
    Wo was?

    Ich habe zum testen wo der Fehler ist überall nen alert hingemacht.

    Bis:

    Code
    onPageLoad: function(aEvent) {
        var doc = aEvent.originalTarget, user="test", pw="test", xmlDoc=document.implementation.createDocument("", "doc", null);
        xmlDoc.load("daten.xml");

    dahin ist alles richtig!
    Also stimmt was mit dem

    Code
    user=xmlDoc.getElementsByTagName('LoginDaten').item(0).getElementsByTagName('sDE').item(0).getElementsByTagName('Username').item(0).firstChild.nodeValue;
       pw=xmlDoc.getElementsByTagName('LoginDaten').item(0).getElementsByTagName('sDE').item(0).getElementsByTagName('Passwort').item(0).firstChild.nodeValue;

    weil dannach das stimmt auch wieder!