Andi: String im String im String

Hi,

folgendes "Problem":
Ich hab irgend ein Element was ungefähr so aussieht

<element attribut="x" onmouseover="javascript:EineFunktion('parameter')" />

also.. erst die " für das attribut und dann noch ein einfaches hochkommata für die String Parameter innerhalb des Aufrufs, soweit sogut.

Jetzt müsste ich allerdings diese ganze Zeile in einen weiteren aufruf bekommen.. was natürlich Fehlermeldungen hagelt. Ich kann ja kein " und kein ' mehr verwenden.

Hilfe?

  1. Hi,

    Jetzt müsste ich allerdings diese ganze Zeile in einen weiteren aufruf bekommen.. was natürlich Fehlermeldungen hagelt. Ich kann ja kein " und kein ' mehr verwenden.

    Du kannst " und ' in deinem String mit Backslash maskieren:
    alert('<element attribut="x" onmouseover="javascript:EineFunktion(\'parameter\')" />');

    Du musst nur die Art von Hochkommas maskieren, die du auch als Stringbegrenzer verwendest, also in meinem Beispiel nur die einfachen Hochkommas (').

    mfG,
    steckl

    1. IE7 und Firefox sagen beide "ungültiges Zeichen" wenn ich dein Beispiel verwende oder es so versuche..

      1. Hi,

        IE7 und Firefox sagen beide "ungültiges Zeichen" wenn ich dein Beispiel verwende oder es so versuche..

        Hast du das genau so abgetippt? Bei mir klappts nämlich.

        mfG,
        steckl

        1. Moin, ja war mein Fehler funktioniert soweit.. ABER:

          Das löst mein Problem nicht, Deine Lösung bezieht sich auf "string im string" nicht aber eine dreidimensionale verstufung.

          object.innerHTML = "<img src='image' onmouseover='MyFunction('parameter')'"

          Das ist mein Problem, egal wie ich es anstelle, ich bekomme immer einen Fehler. Wie kann ich die o.g. Zeile "Valid" im Skript unterbringen?

          1. Hi

            object.innerHTML = "<img src='image' onmouseover='MyFunction('parameter')'"

            Das escapen wird von JavaScript erledigt, nicht von HTML. Daher:
            das innerHTML des objects ist dann
            <img src='image' onmouseover='MyFunction('parameter')'">
            Das Attribut geht deshalb aber nur bis ('
            Hier musst du " verwenden
            object.innerHTML = "<img src='image' onmouseover='MyFunction("parameter")'"
            mfg
            Genie

  2. Hallo,

    <element attribut="x" onmouseover="javascript:EineFunktion('parameter')" /

    »javascript:« ist in Event-Handler-Attributen übrigens überflüssig. onmouseover="handler('parameter)" reicht aus.

    Mathias