cy-man: Javascript: PopUp nicht unter Opera

hallo forum!

ich habe ein javascript popup, indem bilder dargestellt werden sollen. es wurde so etwickelt, dass wenn man auf ein neuen link klickt, sich das alte fenster schließt und mit dem neuen bild öffnet.

leider funktioniert das script nicht unter opera 7.11b - im ie6 sp1 geht es. wieso?! muss man dort noch eine routine oder so was einbauen.

für konstruktive vorschläge oder lösungen wäre ich sehr dankbar!!

regz cy-man

scipt:
------>

var fenster=null;function
popup(imageurl,imagewidth,imageheight,imagetitle)
{
 if(fenster != null && fenster.closed == false) fenster.close();
 fenster=window.open('','Fenster','width='+imagewidth+',height='+imageheight+',dependent=yes');
 with(fenster.document)
  {
  writeln('<html><head><title>PopUp JavaScript</title></head>');
  writeln('<body bgcolor="#000000" style="margin:0px"><div style="position:absolute; top:0px; left:0px;">');
  writeln('<table style="height:100%;" width="100%" cellspacing="0" cellpadding="0" border="0"><tr><td align="center">');
  writeln('<a href="javascript:self.close();"><img src="'+imageurl+'" border="0" alt="'+imagetitle+'"></a>');
  writeln('</td></tr></table>');
  writeln('</div></body></html>');
  close();
  }
 fenster.focus();
}

  1. Moin Moin !

    Ja und? Du definierst eine Variable, setzt sie auf null und definierst eine Funktion.

    Da kann nichts passieren. Wo ist der Funktionsaufruf?

    Beachte die Argumente von window.open. So funktioniert das nicht mit jedem Browser.

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
    1. Hi!

      Ja und? Du definierst eine Variable, setzt sie auf null und definierst eine Funktion.

      Da kann nichts passieren. Wo ist der Funktionsaufruf?

      als link sieht das wie folgt bei mir aus:

      <a href="javascript:popup('../bild',543,400,'TEXT');">BILD</a>

      Beachte die Argumente von window.open. So funktioniert das nicht mit jedem Browser.

      ja, aber im 6er Opera hat es funktionier, da bin ich mir ziemlich sicher. naja, ich versuche ja schon mit dependent=yes zu checken, ob eins offen ist. nur wenn ich eben im opera 7 auf einen weiteren link klicke geht gar nix mehr. ich kann dann diese funtkion nicht mehr aufrufen!

      kann es evtl. sein, weil ich die fkt. aus einem iframe ausführe?

      1. Hallo

        <a href="javascript:popup('../bild',543,400,'TEXT');">BILD</a>

        Dies ist kein gültiger Link. Informiere dich im Archiv über <a href="JavaScript...">
        Werden die Werte korrekt übergeben? Mache alert-Ausgaben. Hast du Popups abgestellt?

        Grüße
          David

        --
        >>Nobody will ever need more than 640k RAM!<<
        1981 Bill Gates
      2. Moin Moin !

        <a href="javascript:popup('../bild',543,400,'TEXT');">BILD</a>

        Damit schließt Du alle Leute ohne Javascript aus. Blöde Idee!
        Und den Leuten mit Javascript versaust Du das Hauptfenster. Wirklich blöde Idee.

        <a href="bild.gif" onclick="popup(this.href,123,456,'blabla'); return false;">Bild</a>

        Beachte die Argumente von window.open. So funktioniert das nicht mit jedem Browser.

        ja, aber im 6er Opera hat es funktionier, da bin ich mir ziemlich sicher.

        "Ziemlich" ist nicht 100%, richtig?

        naja, ich versuche ja schon mit dependent=yes zu checken, ob eins offen ist.

        Unsinn. Lies in SelfHTML nach, was dependent wirklich macht!

        nur wenn ich eben im opera 7 auf einen weiteren link klicke geht gar nix mehr. ich kann dann diese funtkion nicht mehr aufrufen!

        Dann lasse Opera die Javascript-Fehler anzeigen, die auftreten. Benutze bei der Gelegenheit auch mal den JS-Debugger im Mozilla.

        kann es evtl. sein, weil ich die fkt. aus einem iframe ausführe?

        Ein Iframe ist auch nur ein Window. Wenn Du die JS-Funktion natürlich im umgebenden Dokument definiert hast, geht logischerweise gar nichts. Jedes Fenster hat seine eigenen Funktionen, und Cross-Frame-Scripting funktioniert nur bei identischer Serverangabe in den URLs. Wie Du die diversen Frames dann ansprechen mußt, findest Du in http://aktuell.de.selfhtml.org/tippstricks/javascript/fensterzugriff/index.htm.

        Alexander

        --
        Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
  2. Hallo,

    ich habe ein javascript popup, indem bilder dargestellt werden sollen. es wurde so etwickelt, dass wenn man auf ein neuen link klickt, sich das alte fenster schließt und mit dem neuen bild öffnet.

    Wieso änderst du nicht einfach die Größe des vorhandenen Fensters (http://selfhtml.teamone.de/javascript/objekte/window.htm#resize_to) und beschreibst es neu (für letzteres reicht genaugenommen das Ändern der Grafik-URL http://selfhtml.teamone.de/javascript/objekte/images.htm)? Es ist nicht nötig, das Fenster zu schließen und es sofort darauf wieder zu öffnen.

    Du weißt, dass die Browser die Fensterbreite unterschiedlich messen und du somit die Fenstergröße nicht mit der Größe des Innenbereichs des Fensters gleichsetzen kannst bzw. von der einen auf die andere schließen kannst und dadurch dein Popup-Fenster nie exakt so groß wie das Bild sein kann?

    Kennst du die generellen Probleme von Popup-Fenstern? http://home.t-online.de/home/dj5nu/js-popup.html

    Grüße,
    Mathias