Brauche Hilfe bei Erweiterung - URL aus Frame auslesen

  • Hallo,

    ich habe ein Problem beim Erstellen meiner Firefox Erweiterung. Ich hab die ganze Sache mal auf die wichtigen Fakten verkleinert, sodass ich nicht ganz so viel drum herum erklären muss. Soweit funktioniert es:
    Die Funktion hello() wird immer bei Laden einer neuen Seite aufgerufen.

    Code
    function hello() {
    
    
             x = document.getElementsByName("second")[0].src;
             alert(x);
    
    
    }

    So (etwa) sieht die Website aus, auf die ich zugreifen möchte!

    Zitat


    <html><head><title>Test</title></head>

    <FRAMESET ROWS="0,120,*" FRAMESPACING="0" BORDER="0" FRAMEBORDER="NO">

    <FRAME SRC="1.html" NORESIZE SCROLLING="NO" MARGINWIDTH="0" MARGINHEIGHT="0">
    <FRAME SRC="2.html" NAME="first" NORESIZE SCROLLING="NO" MARGINWIDTH="0" MARGINHEIGHT="0">
    <FRAME SRC="http://www.web.de" NAME="second" NORESIZE SCROLLING="AUTO" MARGINWIDTH="0" MARGINHEIGHT="0">

    </FRAMESET>

    </html>


    Ich würde jetzt gern die Zieladresse des Frames "second" herausfinden und in x speichern. Leider funktioniert es auf die oben genannte weise nicht. Kann mir vielleicht jemand helfen? Ich verzweifle langsam aber sicher an diesem kleinen doofen Problem. Falls ihr noch fragen habt oder etwas nicht versteht, bitte fragt!

    Ich danke euch im Voraus und hoffe auf eure Hilfe :(

    Einmal editiert, zuletzt von MarcelB85 (23. September 2008 um 15:47)

  • Zunächst einmal vielen Dank für die schnelle Antwort!

    Code
    alert("hello() gestartet");
    for (var i = 0; i < parent.frames.length; i++)
      alert(parent.frames[i].location.href);

    damit wollte ich es jetzt probieren, aber er gibt mir immer nur die Adresse der einzelnen Tabs aus, aber nicht die Adresse der jeweiligen Frames im aktuellen Tab

    könntest du mir vielleicht mal kurz auf die sprünge helfen

  • Du verstehst nicht ganz wie das mit den Erweiterungen funktioniert. Dein Script wird im browser ausgeführt, du befindest du also "in der Benutzeroberfläche". Wenn du document.body.style.backgroundColor auf "blue" setzen würdest, könntest du damit prinzipiell die Hintergrundfarbe der Benutzeroberfläche auf blau ändern (ganz so einfach ist es aber nicht).

    Du musst also erstmal von der Benutzeroberfläche ins aktive Tab kommen. Wobei du natürlich auch auf inaktive tabs zugreifen kannst.

    wenn meine Errinnerung korrekt ist, kommst du mit
    content
    aufs aktuelle Tab,
    content.document
    wäre das gleiche, wie wenn du "document" in den Code der Webseite schreiben würdest.