Jan: Text an Cursorposition einfügen *ohne* Button zu verwenden

Hallo,

der Titel sagt schon alles: Ich möchte gerne wie im Beispiel (http://aktuell.de.selfhtml.org/artikel/javascript/bbcode/) BBCodes einsetzten. Dazu möchte ich aber keinen Button (<input type="button"...>) sondern ein <li>-Element aus einer Liste verwenden.

Ich habe das ganze im FF getestet und nachdem ich die Liste in den <form>-Tag geschrieben hatte funktionierte dies wunderbar.
Im IE (7) funktioniert das jedoch nicht (document.selection.createRange().text bleibt leer). Wenn ich die funktion jedoch im onClick-Handler eines Buttons aufrufe funktioniert es.

Ich würde mich freuen wenn mir jemand sagen könnte wie ich den IE doch noch überlisten kann.
Danke im Voraus!

Jan

  1. Hallo Jan,

    rufst Du die Funktion auf, indem Du jeweils ein onclick an Deine Listenelemente geheftet hast oder wie hast Du es gestaltet?

    Mit freundlichem Gruß
    Micha

    1. Hallo Micha,

      ich habe es so gemacht, wie du vermutest:
      <from [...]>
        <ul [...]>
          [...]
          <li style="text-decoration: underline;" onClick="unterstrichen();">unterstrichen</li>
        </ul>
        [...]
      </form>

      Die Funktion unterstrichen() ruft hierbei auch nur insert('[u]', '[/u]') auf.

      Gruß

      Jan

      1. Hallo Jan,

        das Form-Element kannst Du Dir sparen, es hat keine Funktion. Ohne Deine Funktion zu kennen, sieht es erst einmal richtig aus. Du kannst jedoch auch gleich das insert() an den Event-Handler setzen; also so:

        <li onclick="insert('[u]', '[/u]');">unterstrichen</li>

        Welche Fehlermeldung erhälst Du denn?

        Mit freundlichem Gruß
        Micha

        1. Hallo Micha,

          die zwischengeschaltete Funktion nutze ich zu Übersichtszwecken. Mir ist bekannt, dass ich insert auch direkt verwenden kann.

          Was den Fehler angeht: Ich bekomme keine Fehlermeldung. "Im IE (7) funktioniert das jedoch nicht (document.selection.createRange().text bleibt leer). Wenn ich die funktion jedoch im onClick-Handler eines Buttons aufrufe funktioniert es." (Zitat - erstes Posting)

          Ich habe die Sache nun anders gelöst. Ich habe einfach Button in die Liste gepackt und diese anstatt der <li>-Tags per CSS angepasst. Nun funktioniert alles ohne Probleme und mit gewünschtem Design.

          Dennoch danke für die Hilfe!

          Gruß

          Jan