Frameset mit window.close() schließen



  • MORL schrieb:

    Aber lass mal beim Funktionsaufruf von schliesseFenster() das java\1: weg!

    Das hab ich schon probiert, das funktioniert leider auch nicht.
    Da krieg ich den Fehler : "Seite nicht gefunden"



  • http://www.selfhtml.net/javascript/objekte/window.htm#close

    Du brauchst also eine globale Variable, in der du den Rückgabewert des window.open() Aufrufs speicherst. Diesen vervendest du dann für das close. Also nicht window.close() sondern variablenname.close();



  • Und wenn du eh keinen richtigen Link hast kannst du das schließen auch als onClick in den img Tag packen 😉



  • Das sieht ja gut aus!
    Nur wie krieg ich diese Variable in eine Funktion?

    function Beispiel()
    {
    var Beispiel1 = window.open(xxxx)
    }
    

    Kann man meines Wissens nicht schreiben.



  • Du musst die Variable außerhalb der Funktion deklarieren!



  • Wie stelle ich dann sicher, dass sich das Fenster auf "Befehl" öffnet und nicht wie in diesem Beispiel, dass sobald der Interpreter über die Variable fährt diese erstellt und das Fenster öffnet? (Wassn Satz....)



  • Das mit der Funktion kannst du ja ansonsten weitgehend so lassen - nur musst du dir eben den Rückgabewert von window.open merken 😉



  • Hi,

    Du solltest die Variable global anlegen.
    Nicht jedoch das öffnen des Fensters.

    <script...
    
    var fenster;
    
    funktion öffnen()
    {
      fenster = ...
    }
    
    funktion schliessen()
    {
      fenster.close();
    }
    
    </script>
    

    tomb



  • Ist es eigentlich egal in welchem Frame ich das mache, oder muss das speziell irgendwo posioniert werden?



  • Es sollte in dem Frame definiert werden
    aus dem du die Funktionen aufrufen willst.

    Die Variable ist nur innerhalb des script's gültig.

    tomb



  • Oder du definierst die Variable in der Datei, in der du deine framesets hast. Dann kannst du aus jedem Frame die Variable mit parent.variable ansprechen.



  • Ich bin mir nicht ganz sicher worauf ihr hinauswollt, oder ich stell mich einfach nur zu blöd an, deswegen erkläre ich mal wie ich mir die Sache vorstelle:
    In der Datei SOUNDS.HTM ist ein
    (<input type="image" href="java\1:Oeffne()>) Button-Element dass die Funktion aufruft, die mir das Fenster SOUNDS1.HTML öffnen soll (function Oeffne(){window.open(blah)}. Soweit funktioniert alles.
    SOUNDS1.HTML ist ein Frameset, dass sich aus 3Frames (top.htm, main.htm, und steuer.htm) zusammensetzt, wobei top.htm und steuer.htm ' target="main" ' sind
    und main.htm hat ' target="_self".

    Aus diesem Grund kann ich die Funktion die tomb vorgeschlagen hat nicht in SOUNDS1.HTM schreiben, weil ich sonst aus SOUNDS.HTM keinen Zugriff drauf habe. Die Variable kann ich auch erzeugen, nur übergeben kann ich ihr nichts, da ich nicht weiss was.

    Vielleicht zeigt dass das Problem deutlicher!
    Ihr wart mir trotzdem eine riesen Hilfe! Immerhin zeigt er im Fenster jetzt schon 'Seite kann nicht gefunden werden' wenn ich den Close Button benutze.



  • Warum einfach wenns kompliziert auch geht!*löl* Des Rätsels Lösung war die unscheinbare Codezeile

    <a href="javascript:window.close()" target="_parent"><img...></a>
    

    Aber so ein bisschen mit der Kirche ums Kreuz laufen ist auch mal ganz schön!
    Auf jeden Fall lehrreich!

    Ich danke euch Allen!

    Liebe Grüße,
    ICH



  • sieht aber irgendwie unschön aus - finde ich 🙄
    Versuch mal parent.close o.ä. oder war gar nicht das target="_parent" die Lösung 😕



  • die Lösung war das
    target="_parent"

    Schön ist es tatsächlich nicht....aber es funzt! 🙂


Anmelden zum Antworten