Michael Lutz: document.execCommand, andere Variante?!

Ich bin daran, ein kleines webadmin zu basteln in dem man den Code so ala WYSIWYG eingeben kann. Microsoft bietet da so bequeme Methoden an, die via JavaScript ausführbar sind. document.execCommand("bold") und voila... sehr undurchschaubar. Keine Ahnung wie das funktioniert!
Irgendwie ist mir das ein wenig zu billig. Ist das nicht etwas sehr "Microsoft-eigenes"? Gibt es da noch andere Möglichkeiten damit dies auch auf Netscape und Opera funktioniert?

Würde mich über eine Antwort sehr freuen!

Vielen Dank im vorraus!!

Gruss, Michael

  1. Hallo Michael

    Ich bin daran, ein kleines webadmin zu basteln in dem man den Code so ala WYSIWYG eingeben kann. Microsoft bietet da so bequeme Methoden an, die via JavaScript ausführbar sind. document.execCommand("bold") und voila... sehr undurchschaubar. Keine Ahnung wie das funktioniert!
    Irgendwie ist mir das ein wenig zu billig. Ist das nicht etwas sehr "Microsoft-eigenes"? Gibt es da noch andere Möglichkeiten damit dies auch auf Netscape und Opera funktioniert?

    Ja, es ist etwas Mircosoft-Eigenes und ich wäre wirklich glücklich, wenn Opera und Netscape etwas vergleichbares hätten.

    Einen Überblick über die Grundlagen der Technologie findest du hier http://msdn.microsoft.com/library/en-us/dnhtmau/html/leverageediting.asp. Das Entscheidene ist dabei, dass die Möglichkeit besteht, die Position des Cursors, ziemlich genau zu überwachen, dass vorallem mit Copy-Paste gearbeitet werden kann und dass ein vollständiger Zugriff auf markierte Inhalte besteht. Je nach verwendeten Browser - es geht ab Version 4 - können beispielsweise komplett formatierte Texte aus Word, Excel oder von Webseiten übernommen werden. Ebenso können Texte ganz normal geschrieben werden. Ein Enter erzeugt einen Absatz und Shift-Enter einen Zeilenumbruch.

    Die Editor-Komponente des IE kann mit mehreren Sprache angesprochen werden. Bei uns in der Firma existiert eine Editor-Entwicklung, die ausschließlich mit JScript läuft und solche Funktionalitäten bietet, wie Editierung von Tabellen, Einbindung von Flashinhalten, Textbausteine, Verarbeitung von beliebigen externen CSS-Dateien (der Redakteur kriegt eine gruppierte Klassenliste angezeigt und kann die gewünschte Klasse auswählen und zuweisen), Generierung einer Liste der eingebundenen URLs und Grafiken und selbstverständlich ein Modul, dass interne Links und Grafiken per Auswahlliste anbietet, Popup und Rollovers ermöglicht.

    Sehr oft wird auch ein selectives Speichern gewünscht. Das bedeutet, in bestimmten Bereichen können nur Inhalte in einem bestimmten Format gespeichert werden. Diese werden gegebenenfalls vor dem Speichern umgewandelt. Aber das ist alles reine JS-Funktionalität, die meist sehr rasch hinzugefügt werden kann.

    In Mozilla könnte man tatsächlich alle Funktionalitäten abbilden, da hier lediglich Eigenschaften des DOM genutzt werden. Tatsächlich habe ich auch schon eine solche Implementation gesehen. Die war grausam langsam und bot kein Copy-Paste-Feature. Mozilla fehlt lediglich die Möglichkeit Content editable zu gestalten. Netscape 4 kannte allerdings einen Ansatz diesbezüglich.

    Fazit:

    möchtest du lediglich solche einfachen Dinge wie fett, kursiv und unterstrichen anbieten, ist es sinnvoller zu sagen wie es geht

    möchtest du eine echte WYSIWYG-Componente bauen, dann vergiß alles, was nicht IE heißt.

    Viele Grüße

    Antje

    1. hallo Antje,

      Ja, es ist etwas Mircosoft-Eigenes und ich wäre wirklich glücklich, wenn Opera und Netscape etwas vergleichbares hätten.

      Wir haben relativ wenige Threads, in denen explizit der Unterschied zwischen "Javascript" und "JScript" angesprochen wird. Ich bin jedoch überzeugt, daß viele Forumbesucher davon entweder gar nichts wissen oder grade mal eine Ahnung haben, "daß es da was gibt".
      Wärst du nicht in der Lage, dazu nen Feature-Artikel zu schreiben, der einfach bloß tabellarisch nebeneinanderstellt, was "JScript" anders (und scheibar "mehr") macht als Javascript?

      Einen Überblick über die Grundlagen der Technologie findest du hier http://msdn.microsoft.com/library/en-us/dnhtmau/html/leverageediting.asp. Das Entscheidene ist dabei, dass die Möglichkeit besteht, die Position des Cursors, ziemlich genau zu überwachen, dass vorallem mit Copy-Paste gearbeitet werden kann und dass ein vollständiger Zugriff auf markierte Inhalte besteht. Je nach verwendeten Browser - es geht ab Version 4 - können beispielsweise komplett formatierte Texte aus Word, Excel oder von Webseiten übernommen werden. Ebenso können Texte ganz normal geschrieben werden. Ein Enter erzeugt einen Absatz und Shift-Enter einen Zeilenumbruch.

      Man kann manchmal sehr mit Microsoft unzufrieden sein, aber gerade solche Sachen sind es, die die "proprietären Elemente" in JScript wieder hochinteressant machen.

      Grüße aus Berlin

      Christoph S.

      1. Christoph, dies wäre ein sehr guter Vorschlag! :-)
        Es ist nämlich genau auch das, war mir unklar ist, bzw. ich nicht weiss!!

      2. Hallo Christoph, hallo Michael,

        Wärst du nicht in der Lage, dazu nen Feature-Artikel zu schreiben, der einfach bloß tabellarisch nebeneinanderstellt, was "JScript" anders (und scheibar "mehr") macht als Javascript?

        Die Frage ist gar nicht so einfach zu beantworten. Denn das was man so als JavaScript bezeichnet ist mittlerweile eine Mischung aus den Sprachen JavaScript/JScript + DOM garniert mit Features, welche abhängig sind vom verwendeten Browser.

        Hier mal die Definition von Mozilla:

        JavaScript is the Netscape-developed object scripting language used in millions of web pages and server applications worldwide. Netscape's JavaScript is a superset of the ECMA-262 Edition 3 (ECMAScript) standard scripting language, with only mild differences from the published standard.

        http://www.mozilla.org/js/

        JScript is the Microsoft implementation of the ECMA 262 language specification (ECMAScript Edition 3). With only a few minor exceptions (to maintain backwards compatibility), JScript is a full implementation of the ECMA standard. This overview is intended to help you get started with JScript.

        http://msdn.microsoft.com/library/en-us/script56/html/js56jsconabout.asp

        Gemeinsam haben beide, dass die Sprachen auf EMCA-262 Edition 3 beruhen. Vereinfacht kann man sagen, JScript und JavaScript sind Dialekte, welche die gleichen Wurzeln haben.

        Microsoft unterstützt diese Features: http://msdn.microsoft.com/library/en-us/script56/html/js56jsgrpecmafeatures.asp

        und hat diese http://msdn.microsoft.com/library/en-us/script56/html/js56jsgrpnonecmafeatures.asp hinzugefügt.

        Was Mozilla kann, steht dann hier http://www.mozilla.org/js/language/E262-3.pdf

        Soweit erstmal zu JavaScript. Garniert wird das Ganze mit dem DOM. Der Unterschied zwischen beiden wird hier recht gut erklärt:

        http://www.mozilla.org/docs/dom/reference/javascript.html

        Eine Übersicht über das DOM von Mozilla steht hier http://www.mozilla.org/docs/dom/domref/

        und das von MS http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_entry.asp

        Damit die Sammlung komplett ist, noch die relevanten Links von Opera:
        http://www.opera.com/docs/specs/
        http://www.opera.com/docs/specs/js/

        Ich hoffe damit eure Fragen beantwortet zu haben. Ein Feature-Artikel halte ich nicht für sinnvoll, da ausreichend Quellen zur Verfügung stehen und eine formale Auflisting kein Feature-Artikel ist und sich sehr schnell inaktuell wird.

        Man kann manchmal sehr mit Microsoft unzufrieden sein, aber gerade solche Sachen sind es, die die "proprietären Elemente" in JScript wieder hochinteressant machen.

        und die ausgezeichnete Dokumentation. Sobald man gelernt hat, sich darin zu bewegen, findet man eigentlich immer was man braucht.

        Viele Grüße

        Antje

        1. hallo Antje,

          Die Frage ist gar nicht so einfach zu beantworten. Denn das was man so als JavaScript bezeichnet ist mittlerweile eine Mischung aus den Sprachen JavaScript/JScript + DOM garniert mit Features, welche abhängig sind vom verwendeten Browser.

          hm, das war mir schon klar. Gelegentlich kann ich aber auch hinterhältig sein ;-)

          Hier mal die Definition von
          [vieles außerordentlich Lesenswertes weggeschnipselt]
          Ich hoffe damit eure Fragen beantwortet zu haben.

          Mehr als gründlich, so weit es den Rahmen eines Forumspostings angeht.

          Ein Feature-Artikel halte ich nicht für sinnvoll, da ausreichend Quellen zur Verfügung stehen und eine formale Auflisting kein Feature-Artikel ist und sich sehr schnell inaktuell wird.

          Naja, ob nun Feature oder Tipps&Tricks ist eigentlich zweitrangig. Es kann genauso sinnvoll sein, so ein posting wie deines jetzt im Archiv zu haben und es bei Gelegenheit zitieren zu können. Ich hätte die links, die du zusammengesucht hast, nicht ganz so schnell auch zusammenstellen können. Das mit der "Aktualität" halte ich nicht für gar so gefährlich. Wir wissen alle, wie schnellebig manche Konzeptionen sind, auch SELFHTML selbst hatte bereits zum Zeitpunkt seines Erscheinens einige wenige Aussagen, die nicht mehr ganz aktuell waren.
          Aber vom Grundsatz her, denke ich, hast du sehr gut verstanden, weshalb ich mich zu dieser "Anregung" habe hinreißen lassen: viel zu viele Leute, die hier im Forum nachfragen, haben keine Ahnung davon, daß "Javascript" in ihren Browsern eben nicht unbedingt als "Javascript" verstanden werden muß. Und wer wäre besser geeignet als du, eine wenn auch noch so kurze Zusammenfassung dazu zu liefern?

          Man kann manchmal sehr mit Microsoft unzufrieden sein, aber gerade solche Sachen sind es, die die "proprietären Elemente" in JScript wieder hochinteressant machen.
          und die ausgezeichnete Dokumentation. Sobald man gelernt hat, sich darin zu bewegen, findet man eigentlich immer was man braucht.

          Eben. Und ich bin sehr froh darüber, daß wir hier im Forum auch mal solche Hinweise "verewigen" können.

          Grüße ins Sächsische
          (ich war grade am letzten Wochenende mal wieder in Dresden ...)

          Christoph S.

    2. Vielen Dank für deine umfangreiche Antwort, das hat mir schon ein wenig weitergeholfen!!!
      Es hat sich einfach die neue Frage gestellt JScript - JavaScript. Inwiefern besteht der Unterschied? wo ergänzen Sie sich? muss da mal was darüber lesen..

      gruss, Michael