Pierre: Wo liegt der Fehler?

Hallo,

Ich habe folgendes script geschrieben um ein neues fenster zu oeffnen, ohne toolbars, linkliste, adresszeile und with und height.
Allerdings scheint es nicht zu funktionieren. Wo liegt der Fehler?

Oder habt ihr ein besseres?

<script language="javascript" type="text/javascript">
<!--//
function newWindow(sURL){
newwindow=open(sURL,"newwin","scrollbars=no, toolbar=no, directories=no,
menu bar=no,  resizable=no, status=yes, width=600, height=400");
}

//-->
</script>

und in der page <a href="javascript:newWindow(pic.jpg)">

Danke fuer eure Hilfe,
Pierre

  1. Hallo!

    Versuchs mal damit:
    Das hier kommt in den <Head>-Bereich:

    <script language="JavaScript">
    <!--
    function PopUp()
    {
     var breite=800;
     var hoehe=600;
     var positionX=((screen.availWidth / 2) - breite / 2);
     var positionY=((screen.availHeight / 2) - hoehe / 2);
     var url='pic.jpg';
     pop=window.open('','','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,fullscreen=0,width='+breite+',height='+hoehe+',top=10000,left=10000');
     pop.resizeTo(breite,hoehe);
     pop.moveTo(positionX,positionY);
     pop.location=url;
     }
    //-->
    </script>

    Das hier in den <Body>-Bereich:

    <a href="#" onClick="PopUp()">Fenster öffnen</a>

    1. Oder Pfad in Hochkommata setzen :
      <a href="javascript:newWindow('pic.jpg')">
      Gruß Doc Type :o)

    2. hey,

      Das hier kommt in den <Head>-Bereich:
      <script language="JavaScript">

      Ich weiß nicht, wie es kommt, daß sich offenbar längst überwunden geglaubte falsche Ratschläge doch immer wieder reproduzieren. NEIN, "das" kommt nicht in den Header, sondern es kommt dorthin:
        <script type="text/javascript">

      function PopUp()
      {
       var breite=800;
       var hoehe=600;
       var positionX=((screen.availWidth / 2) - breite / 2);
       var positionY=((screen.availHeight / 2) - hoehe / 2);

      Das sieht verdächtig danach aus, als ob ein "Fullscreen" im Nachhinein auf halbe Bildschirmgröße reduziert werden soll. Bitte mal in http://selfhtml.teamone.de/javascript/objekte/screen.htm#avail_width ein bißchen nachlesen.

      var url='pic.jpg';
       pop=window.open('','','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,fullscreen=0,width='+breite+',height='+hoehe+',top=10000,left=10000');

      Hier solltest du bitte die "Hochkommas" dringlich überdenken. In dieser Form, wie du es gepostet hast, müßte es eigentlich (fast) zu einem Systemabsturz kommen. Hinter "width='" ist das Argument einfach zu Ende, das heißt, " +breite+',height='+hoehe+',top=10000,left=10000'); " kann eigentlich von einem vernünftigen Browser gar nicht mehr berücksichtigt werden. Ganz abgesehen davon, daß mir die Notation "top=10000,left=10000'" auch nicht so recht einleuchten will. Das Popup-Fensterchen soll also zehntausend Meter unter der oberen Bildschirmkante beginnen? Gute Idee, bestelle mal bitte die geologische Forschungsgesellschaft, damit sie ein entsprechend tiefes Loch unter deinen Computer bohren ... Und ich hoffe stark, daß ich mich nicht grade zehntausend (Maßeinheiten?) links von dir befinde, wenn das Fenster aufgeht.

      pop.resizeTo(breite,hoehe);
       pop.moveTo(positionX,positionY);

      Ja, prima. Wieder mal eine Seite, die mir im IE die mühsam eingerichtete eigene Höhe, Breite und Position des Browserfensters überschreibt.

      pop.location=url;

      ups. Die "loacation" ist dann nach der vorher aufgeschriebenen Variablen 'pic.jpg'. Du bist sicher, daß das immer und überall auch so funktioniert?

      <a href="#" onClick="PopUp()">Fenster öffnen</a>

      Hm, _das_ ist allerdings vernünftig, erstaunlicherweise.

      Grüße aus Berlin

      Christoph S.

      1. Hi Christoph,

        <a href="#" onClick="PopUp()">Fenster öffnen</a>

        Hm, _das_ ist allerdings vernünftig, erstaunlicherweise.

        Vernünftig wäre imho:

        <a href="angeforderte_seite.htm" target="new" onClick="PopUp()">Fenster öffnen</a>

        Wobei ich das Target-Attribut als optional ansehen würde, sofern die Intention nicht explizit in Richtung neues Fenster geht.

        Gruß

        Kurt

        --
        Nein, ich beantworte keine Anfragen per e-mail.
        ss:( zu:) ls:[ fo:) de:] va:| ch:| sh:( n4:° rl:( br:? js:| ie:% fl:( mo:?
        "Die Destination des Menschen liegt in der Weisheit, die es zu erlangen gilt."  (Moriartes, gr. Philosoph, 314-244 v. Chr.)"
        http://elektro-dunzinger.at
        http://shop.elektro-dunzinger.at
      2. Hi,

        function PopUp()
        {
        var breite=800;
        var hoehe=600;
        var positionX=((screen.availWidth / 2) - breite / 2);
        var positionY=((screen.availHeight / 2) - hoehe / 2);

        Das sieht verdächtig danach aus, als ob ein "Fullscreen" im Nachhinein auf halbe Bildschirmgröße reduziert werden soll. Bitte mal in http://selfhtml.teamone.de/javascript/objekte/screen.htm#avail_width ein bißchen nachlesen.

        Nein. Wenn Du Code nicht verstehst, kommentiere ihn nicht.

        Hier wird versucht, das Popup der Größe 800 * 600 zu zentrieren.

        pop=window.open('','', 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,fullscreen=0,width='+breite+',height='+hoehe+',top=10000,left=10000');
        Hier solltest du bitte die "Hochkommas" dringlich überdenken. In dieser Form, wie du es gepostet hast, müßte es eigentlich (fast) zu einem Systemabsturz kommen.

        Warum sollte gewöhnliche String-Konkatenation zu einem Systemabsturz führen?

        Hinter "width='" ist das Argument einfach zu Ende, das heißt, " +breite+',height='+hoehe+',top=10000,left=10000'); " kann eigentlich von einem vernünftigen Browser gar nicht mehr berücksichtigt werden.

        Wie bereits gesagt: Wenn Du Code nicht verstehst, kommentiere ihn nicht.

        Ganz abgesehen davon, daß mir die Notation "top=10000,left=10000'" auch nicht so recht einleuchten will.

        Ja, sinnvoller wäre es hier gewesen, die bereits berechnete Position direkt einzusetzen...

        <a href="#" onClick="PopUp()">Fenster öffnen</a>

        Hm, _das_ ist allerdings vernünftig, erstaunlicherweise.

        Nein, das ist nicht vernünftig, denn ohne Javascript ist der Popup-Inhalt unerreichbar.

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.Mud-Guard.de/
    3. Danke,

      Der Code funktioniert ausgezeichnet. Jegliche Kritik ist unangebracht. Code funktioniert in Netscape und IE!

      Pierre

      1. hallo Pierre,

        Der Code funktioniert ausgezeichnet. Jegliche Kritik ist unangebracht. Code funktioniert in Netscape und IE!

        Tja, was soll man da noch sagen. Welchen Netscape hast du zum Prüfen genommen? Was sagt Firefox? Kann der Konqueror mitspielen? Und was zeigen Textbrowser wie Lynx als Alternative? Wie stehts mit der "Barrierefreiheit"?
        Du gebrauchst das klassische "Totschlagsargument" in der Form: "es funktioniert ja". Dabei gibt es unglaublich viele Sachen, die "funktionieren", und trotzdem absoluter Blödsinn sind.

        Dabei hat es in diesem Thread noch nichtmal die sonst sehr schnell kommenden Warnungen gegeben, daß popup-Fenster eh Unsinn sind.

        Naja, macht nix. Selbst wenn ich unerwarteterweise jemals auf eine deiner Seiten kommen sollte, die ein popup öffnen möchte, werde ich das gar nicht merken, obwohl ich Javascript durchaus aktiviert habe.

        Grüße aus Berlin

        Christoph S.

  2. und in der page <a href="javascript:newWindow(pic.jpg)">

    so machst du den Link unötigerweise unbenutzbar, es geht auch, ohne das du JS-lose Besucher ausperrst:

    <a href="pic.jpg" onclick="newWindow(this.href);return false;">

    Struppi.