"onClick" funktioniert nicht

  • Hallo,
    in einem Gästebuchscript soll durch diese Zeile ein neues Fenster geöffnet werden:

    <a href = `#` onClick=`window.open('smilie.php', 'Smilies', 'width=$width,height=$hight,scrollbars=yes')` style='text-decoration: none'><font color='#000000'>[mehr Smilies]</font></a>

    Das funktioniert im IE einwandfrei.

    Der Firefox-Browser öffnet aber ein komplett neues Fenster mit der Fehlermeldung "Objekt nicht gefunden".

    Java und Javascript sind aktiviert. Weiß jemand hierfür eine Lösung?

    Danke, Thomas

  • Versuche es mal so:

    Code
    <a href = "#" onClick="window.open('smilie.php', 'Smilies', 'width=$width,height=$hight,scrollbars=yes')" style="text-decoration: none"><font color='#000000'>[mehr Smilies]</font>

    Beachte die Verschachtelung der Anführungszeichen.

  • Das geht leider nicht, denn der Aufruf erfolgt aus einer php-Datei.
    Hatte ich versäunt zu erwähnen.
    Exakt sieht das so aus:

    Code
    $smilie .= "<a href = `#` onClick=`window.open('smilie.php', 'Smilies', 'width=$width,height=$hight,scrollbars=yes')` style='text-decoration: none'><font color='#000000'>[mehr Smilies]</font></a>";

    Und wie gesagt, im IE funktioniert das ja auch

  • Zitat von kayleigh


    Und wie gesagt, im IE funktioniert das ja auch

    Hat nix zu heissen. Der IE "ignoriert" gerne mal Programmierfehler oder Standards. Was auf IE läuft, muss nicht in anderen Berowsern auch laufen...


    Code
    onClick=`window.open('smilie.php',

    Vor dem smile.php fehlt doch noch was...?

    ______________
    carpe diem!
    /CT
    [allmost offline]
    WinXP SP2, Ubuntu 7.10, Fx, BBCodeXtra, Tab Mix Plus, All-in-One Gestures, Sage

  • Ein ` ist kein korrektes anführungszeichen. mag sein das IE das grosszügig akzeptiert. aber richtig ist ein ganz normales doppeltes anfrühungszeichen (").

    Du kannst auch im PHP innerhalb von strings Anführungszeichen schreiben. Dann einfach als sonderzeichen deklarieren -> \"

    Code
    $smilie .= "<a href = \"#\" onClick=\"window.open('smilie.php', 'Smilies', 'width=$width,height=$hight,scrollbars=yes')\" style=\"text-decoration: none\"><font color=\"#000000\">[mehr Smilies]</font></a>";

    edit: voll den tippdreher drin gehabt und blind copy&paste benutzt. "\ statt \" ... peinlich.

    2 Mal editiert, zuletzt von bugcatcher (17. Juni 2005 um 11:40)

  • Getestet oder Vermutet? Keine ahnung was du da jetzt genau machst.... aber anführungszeichen innerhalb einer zeichenkette schreibt man mit \ davor. genauso wie zeilenumbrüche \n z.B.

    das wäre z.B. 100%ig funktionstüchtig:

    Code
    $meintext = "<p align=\"center\">Text zentriert</p>\n";
    echo $meintext;

    Kannst Du im Browserquelltext prüfen. Die \ werden vom PHP entfernt, der syntax bleibt erhalten, bzw. wird nicht unterbrochen.

    Einmal editiert, zuletzt von bugcatcher (17. Juni 2005 um 11:59)

  • Meinst Du jetzt meinen Post?

    Seh grad, dass die BOLD Tags zum hervorheben der Gänsefüsschen " nicht umgesetzt werden, hier nochmal korrigiert:

    OnClick="window.open('smilie.php', 'Smilies', 'width=$width,height=$hight,scrollbars=yes')"

    Code
    OnClick="window.open('smilie.php', 'Smilies', 'width=$width,height=$hight,scrollbars=yes')"

    ______________
    carpe diem!
    /CT
    [allmost offline]
    WinXP SP2, Ubuntu 7.10, Fx, BBCodeXtra, Tab Mix Plus, All-in-One Gestures, Sage

  • CharlysTante: das würde innerhalb des strings zu fehlern führen, da du ihn mit dem nicht als sonderzeichen markierten anführungszeichen abbrichst.

    Zitat

    $smilie .= "<a href = `#` OnClick="window.open('smilie.php', 'Smilies', 'width=$width,height=$hight,scrollbars=yes')" style='text-decoration: none'><font color='#000000'>[mehr Smilies]</font></a>";


    Der String würde dann nur bis nach dem = vom OnClick gehen (vom ersten anführungszeichen bis zum nächsten.). Alles danach würde sofort zum Parse-Error führen.

  • Also, ich setze auf meiner php-Site Strings nach dem von bugcatcher angegebenen Muster zusammen und das funktioniert, ohne daß es einen Parserror gibt. Man muß nur genau darauf achten, wann man die Anführungszeichen maskiert und wann nicht. Das hat mich bei der Erstellung der ersten php-Site auch einige Nerven gekostet.

    Win XP Home SP2, Deer Park Alpha 2 (20050720, nightly, zip-Version)
    FF-Erweiterungen, myflickr

    Einmal editiert, zuletzt von Gertrud (17. Juni 2005 um 12:22)

  • Was heisst hier "natürlich"? Die schreibweise \" ist bei allen programmiersprachen eine normale technik. Das würde ich als natürlich bezeichnen. Prüf nochmal ob du auch sauber gearbeitet hast.

    ansonsten fällt mir dazu nur ein: Mozilla akzeptiert nur " und ' als anführungszeichen. sonst nix. musste dir halt was einfallen lassen.

    http://www.bugcatcher.de/files/natuerlich.php

    PHP
    <?php
     $width = 100;
     $height = 100;
    
    
     $smilie = "<a href = \"#\" onClick=\"window.open('smilie.php', 'Smilies', 'width=$width,height=$hight,scrollbars=yes')\" style=\"text-decoration: none\"><font color=\"#000000\">[mehr Smilies]</font></a>\n";
     echo $smilie;
    ?>

    So. Bin weg. Pakete rufen.