Jens Niemeyer: Nach window.open werden Links nicht mehr im Standard-Frame geöffnet

Ich bin ziemlicher JavaScript-Neuling und hoffe, hier keine überflüssige Frage zu stellen.

Zum Problem: Habe eine Funktion geschrieben, die nach Klick auf eine Vorschaugrafik die "richtige" Grafik in einem Extra-Fenster anzeigt.

Das ganze läuft im "Content-Frame" meines Framesets (Navigationsframe,Content-Frame).

Nachdem die Vorschau-Funktion (per <a><img ... OnClick> - gibt es da vielleicht was eleganteres, was auch mit den Navigator funktioniert?) einmal aufgerufen wurde, öffnen Standard-Links im Navigationsframe neue Fenster, anstatt - wie sonst - die Seite ins Content-Frame zu laden.

Eine Navigationsleiste im Navigationsframe, die an die SelfHTML-Quickbar angelehnt ist, öffnet andere Seiten nachwievor im Content-Frame.

Wie kommt das? Und was kann ich dagegen tun? Irgendwas muss ich doch falsch machen. Ich weiß nur leider nicht, was.

Vielen Dank für Eure Hilfe.

  1. Hallo Jens,

    Das ganze läuft im "Content-Frame" meines Framesets (Navigationsframe,Content-Frame).

    Nachdem die Vorschau-Funktion (per <a><img ... OnClick> - gibt es da vielleicht was eleganteres, was auch mit den Navigator funktioniert?) einmal aufgerufen wurde, öffnen Standard-Links im Navigationsframe neue Fenster, anstatt - wie sonst - die Seite ins Content-Frame zu laden.

    Bitte unbedingt eine Beispieldatei mit dem Problem online stellen.
    Lese dazu auch die Aussagen in der FAQ http://www.teamone.de/selfaktuell/forum/forumsfaq_2.htm#a5

    Viele Grüße

    Antje

  2. hi,

    Nachdem die Vorschau-Funktion (per <a><img ... OnClick> - gibt es da vielleicht was eleganteres, was auch mit den Navigator funktioniert?)

    NC erlaubt onclick nicht im IMG-tag, Du musst wie folgt ein a-tag drumbauen:

    <a href="#" onclick="Deine_Funktion();return false;"><IMG SRC="..."></a>

    einmal aufgerufen wurde, öffnen Standard-Links im Navigationsframe neue Fenster, anstatt - wie sonst - die Seite ins Content-Frame zu laden.

    da kann ich nur raten, Du musst URL oder Auszug posten. Wahrscheinlich ist Dein code fehlerhaft, und veraendert den Framenamen.

    Probier mal folgende Funktion, die Du so aufrufst:

    onclick="fenster('Deine_URL.htm','','width=Deine_Breite,height=Deine_Hoeehe')

    neu=false;

    function fenster (adresse,name,eigenschaften)
    {
    if(neu && !neu.closed)
    {
    neu.close();
    neu=false;
    }
    neu=window.open(adresse,name,eigenschaften);
    }

    Es wird also immer das Vorhandensein von "neu" geprueft, und, falls ja geschlossen. Danach wird neu mit den aktuellen Attributen geoeffnet.

    Viel Erfog  Joachim

    1. NC erlaubt onclick nicht im IMG-tag, Du musst wie folgt ein a-tag drumbauen:

      <a href="#" onclick="Deine_Funktion();return false;"><IMG SRC="..."></a>

      Das habe ich schon probiert. Aber da ging wurde wieder der Seitenanfang gezeigt, was nicht in meinem Sinne ist.

  3. Unter www.jens2day.de/problem wird das Problem deutlich.

    Vielen Dank für Eure Hilfe!

    Jens

    1. Hallo Jens,

      Unter www.jens2day.de/problem wird das Problem deutlich.

      Vielen Dank für Eure Hilfe!

      gib dem Link mal einen target oder referenziere absolut.

      <a href="demo.htm" target="Hauptframe">Demo-Link</a>

      für deine Zwecke wäre aber sicher das Script von  Thumb-o-Matic: Christian Heilmann interessant. Zu finden auf:

      http://www.internetworld.de/iw/magazin_listings_0200.htm

      Viele Grüße

      Antje

    2. Hallo Jens

      Unter www.jens2day.de/problem wird das Problem deutlich.

      In Deinem Hauptframe-Doc steht in der preview()-Funktion
      die Zeile
          self.name = "Vorschau";

      Damit aenderst Du den Namen dieses Frames von
      "Hauptframe" zu "Vorschau". Anschliessend wird der Frame
      "Hauptframe" nicht mehr gefunden, und es passiert das,
      was immer passiert, wenn man einen noch nicht benutzten
      Fensternamen als TARGET benutzt: Es wird ein neues Fenster
      mit eben diesem Namen geoeffnet.

      Bye, Calocybe

      1. Danke Dir vielmals, das war's.