Maskieren von mehreren Anführungszeichen

  • Hallo zusammen,


    kann mir jemand erklären, wie ich folgende Javascript-Anweisung markieren soll, sodass sie auch funktioniert? Ich schätze mal mit einfach nur maskieren funktioniert nicht, oder doch?, und falls nicht, was dann?


    JavaScript
    onmouseover="return overlib('{$users[user_loop]->user_photo('./images/nophoto.gif', TRUE)}', WRAP, LEFT);" onmouseout="return nd();"


    Speziell handelt es sich über dabei eigentlich um diesen Part, der von Smarty stammt und auch entweder einfache oder doppelte Anführungszeichen benötigt:


    Code
    {$users[user_loop]->user_photo('./images/nophoto.gif', TRUE)}


    Habe es schon mit allen möglichen Tricks versucht, aber mein wissen über Javascript ist begrenzt, vielleicht hat daher jemand bitte nen Tip für mich wie ich diesen Code umschreiben kann, damit es keine Konflikte mehr mit den vielen Anführungszeichen gibt.


    Gruß

  • weiss zwar nicht was das eigtl macht, aber der code sieht für mich aus, als könnten da 2 ' weg:

    HTML
    onmouseover="return overlib({$users[user_loop]->user_photo('./images/nophoto.gif', TRUE)}, WRAP, LEFT);" onmouseout="return nd();"


    rein der intuition wegen =)

  • cottton: Der Code öffnet ein Hover-Popup (OverLib) in meiner User-Liste, im Popup wird das Avatar des Users beim Hovern dann vergrößert dargestellt. Entferne ich aber diese 2 ' in den Klammern, bekomme ich einen Syntax Error an genau dieser Stelle.


    lauras: Ein Backshlash an den entsprechenden Stellen bewirkt, dass entweder die Seite nicht mehr geladen wird (Smarty-Error) oder das Popup nicht funktioniert (Syntax Error).


    Zitat

    Bzw. Strings und Variablen/funktionen mit + aneinanderhängen?


    Daran hatte ich auch schon gedacht, könnte auch die Lösung sein, aber wie gesagt da sind meine Kenntnisse in Javascript auch schon am Ende, wüsste jetzt nicht wie ich den Code umschreiben müsste, weiß nur grob es müsste vielleicht eine Funktion her die mein "onmouseover" (teilweise) ersetzt.

  • Das müsste dann doch aber auch "einfacher" gehen.
    Was ich bei nem ähnlichen fall nutze ust:

    JavaScript
    onmouseout="this.src='Images/x.png';this.width='32';this.height='32';"


    Damit brauchst du nur noch das gegenstück mit "onmouseover".
    evtl:

    JavaScript
    onmouseover="this.src='Images/x.png';this.width='64';this.height='64';"


    ungetestet:

    HTML
    <img src="Images/x.png" width="32" height="32" alt="x_pic" 
    onmouseover="this.src='Images/x.png';this.width='64';this.height='64';" 
    onmouseout="this.src='Images/x.png';this.width='32';this.height='32';" />
  • Danke cottton für deine ausführliche Mühe, aber selbst da bliebe das Problem bestehen, denn mein Code sähe dann so aus:


    JavaScript
    onmouseover="this.src='{$users[user_loop]->user_photo('./images/nophoto.gif', TRUE)}';"


    Also auch hier wieder der Syntax Error wegen den 2 '


    Die Smarty Funktion {$users[user_loop]->user_photo('./images/nophoto.gif', TRUE)} bewirkt, dass in meiner Membertabelle das entsprechende Avatar jeden Members aus dem Array aufgelistet wird, und dass falls ein Member kein Avatar besitzt, wird ein Default-Avatar (nophoto.gif) geladen.


    Ich werde versuchen mal mit PHP noch eine Lösung zu finden, mein erster Versuch war schon mal erfolgreich, nur mit dem Problem, dass er mir bei allen dann das vergrößerte MemberPhoto von Member ID 1 anzeigt, da stimmt vielleicht noch etwas mit meinem PHP-Array nicht, obwohl mein Code in einer while Schleife... aber mal schauen...


    Also Danke für die Mühe erstmal, falls jemand noch etwas dazu einfällt, gerne posten.


    Gruß

  • Also ich glaube ich hab's geschafft, auch wenn es jetzt womöglich kein valides HTML ist, aber scheint zu funktionieren.


    Mein Code sieht jetzt wie folgt aus:

    JavaScript
    onmouseover="return overlib('<img src={$users[user_loop]->user_info.user_photo_url} />', WRAP, LEFT);"


    Wie gesagt, gefällt mir nicht ganz dass es jetzt kein valides HTML ist, aber wenn es in Javascript da keine einfache Lösung dafür gibt, dann soll es mir auch recht sein.


    Gruß

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!