Ankündigung

Einklappen
Keine Ankündigung bisher.

execCommand('createlink') will nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ambience
    hat ein Thema erstellt execCommand('createlink') will nicht.

    execCommand('createlink') will nicht

    Hallo,

    so wie ihr alle wisst bauen wir gerade alle unsere WYSIWYG Editoren...

    Nun bin ich beim execCommand('createlink') angekommen, welches aber patu nicht funktionieren will...

    PHP-Code:
          function do_CreateLink() 
          { 
            if (
    isMSIE)
            {
              
    iView.document.execCommand('createlink');
              
    document.getElementById('iView').focus();
            }
            else if(
    isFF)
            {
             
    document.getElementById('iView').contentWindow.document.execCommand('createlink');
             
    document.getElementById('iView').contentWindow.focus();
            }
            else if (
    isOpera)
            {
            } 
          } 
    Also... im IE funktioniert es, aber er tut den Link nicht in das Iframe sondern nebenhin... Im FF geht es erst überhauptnicht..

    Kann da mal jemand drübergucken?


    Ambience

  • Ambience
    antwortet
    xd, du bist ja bei js-welt.de angemeldet... helf mir da mal mit dem designmode in ff... seitdem ich ne id als übergabe benutze geht das nimmer....

    Einen Kommentar schreiben:


  • Montellese
    antwortet
    Grundsätzlich gilt in dem contentWindow des iFrames ja auch das DOM-Modell! So kann man auch ganze Tabellen etc einfügen! Weiss nicht genau, wo es sinnvoll ist execCommand zu benutzen und wo nicht, da ich nie solch einen Editor von Grund auf geschrieben habe, sondern mich "nur" in einen bestehenden eingearbeitet habe (was unter Umständen sogar schwieriger sein kann)!

    EDIT: Also z.B. bei Fett, Unterstrichen etc macht execCommand in der Hinsicht Sinn, dass der FF, IE und Opera dafür jeweils andere Tags benutzen! Für Fett benutzt der FF/Opera z.B. <b> und der IE <strong>, für Kursiv benutzt der FF <i>, die anderen beiden <em> und so weiter und so fort! FF fügt underline, line-through etc im gleichen style-Attribute zusammen, wogegen der IE dafür eigene Tags verwendet und so weiter und so fort!
    Meiner Meinung nach schreibt der FF das Zeug so, wie es sein sollte (bzw so wie ich es von Hand selber schreiben würde) und der IE versucht krampfhaft irgendwelche anderen Tags dafür zu benutzen....

    Gruss

    Einen Kommentar schreiben:


  • Ambience
    antwortet
    ja ich hab den editor jetzt mal aufgesetzt.. werde jetzt js code auslagern, css auslagern und mal kommentieren und besser schreiben.. achwas? das geht, wenn ich statt diesen exec commands einfach ein <b> oderso rumsetze? lol.. dann verzicht ich doch gleich auf die dinger... und machs anders..

    Einen Kommentar schreiben:


  • Montellese
    antwortet
    1. Ich würde mir mal ne Funktion schreiben, die dir eine Referenz auf dein "iView" zurückgibt, dann musst du das nicht immer so mühsam machen

    2. Das Problem, dass der IE was einfach neben das iFrame schreibt, habe ich auch und konnte es bisher noch nicht lösen

    3. Finde keinen Fehler in deinem Script, der das Verhalten erklären könnte! Da ich aber nie execCommand('createLink') benutzt habe, sondern nur immer das HTML des ausgewählten Textes (getSelection bzw createRange etc) um ein <a> Tage erweitert habe, kenne ich das Verhalten von createlink nicht! Kann natürlich tatsächlich daran liegen, dass du einen Bereich angeben musst, auf das das createlink ausgeführt werden soll! Einfach so einen Link ohne Text macht ja wenig Sinn!

    Gruss

    Einen Kommentar schreiben:

Lädt...
X