一部のWYSIWYGエディターは、貼り付けられたテキストのフォーマットをどのように維持しますか?

browser javascript javascript-events jquery wysiwyg
一部のWYSIWYGエディターは、貼り付けられたテキストのフォーマットをどのように維持しますか?

一部のWYSIWYGエディターは、貼り付けられたテキストのフォーマットをどのように維持しますか? 例として、テキストエディタからイタリック体の赤いテキストをWYSIWYGにコピーし、テキストの色とスタイルを保持しましたが、これはどうなっていますか? 長い間、私はJavaScriptがクリップボードのテキストのみにアクセスすると思っていました。 そうではありませんか。 もしそうなら、それは何ですか?

  6  0


ベストアンサー

コピー/貼り付け操作中に、ソースとターゲットの間でコンテンツタイプのネゴシエーションがあります。 次のようになります:

  1. コピーアンドペーストバッファに何かをコピーします。 コピーされたデータは
    多かれ少なかれ、MIMEタイプとそこに誰がタグ付けされているか。

  2. 貼り付けると、貼り付けターゲットはコピーアンドペーストシステムに次のことを伝えます。
    MIMEタイプの特定のリストを理解します。

  3. コピーアンドペーストシステムは、使用可能な形式を目的の形式に一致させます
    両方のリストで `text / html`をフォーマットして検索します。

  4. 誰か(おそらくデータの元のソース)が変換します
    バッファを `text / html`に貼り付け、エディターにドロップします。

X11 / Motifの開発を行っていたとき、それはほぼどのように機能したかです(ちょっと! 腐った子供たちの芝生から降りてください!)

3


JavaScriptは一般にクリップボードに直接アクセスしません。 ただし、過去数年間にリリースされたすべての主要なブラウザには、任意の要素の「contenteditable」属性/プロパティ(その要素のみを編集可能にする)およびドキュメントオブジェクトの「designMode」プロパティ(文書全体を編集可能にします)。

ユーザーがページのコンテンツを編集しているときに、[。kbd]#Ctrl#+ [.kbd]#V#または[.kbd]#Shift#+などのキーボードショートカットを使用して貼り付けをトリガーした場合
Insert or via the Edit or context menus), the browser
JavaScriptの介入なしに、貼り付けプロセス全体を自動的に処理します。 このプロセスの一部には、可能な限りフォーマットを保持することが含まれます。

ただし、これが生成するHTMLは恐ろしく、ブラウザによって大きく異なります。 TinyMCEやCKEditorなどの多くのWYSIWYGエディターはhttps://stackoverflow.com/questions/2176861/javascript-get-clipboard-data-on-paste-event-cross-browser/2177059#2177059[tricks]を使用して貼り付けられたコンテンツをインターセプトしますエディターの編集可能領域に到達する前にそれをきれいにします。

2


表示されているのはリッチテキストエディターです。 このウィキペディアの記事にはいくつかの情報があります:http://en.wikipedia.org/wiki/Online_rich-text_editor

1


代わりに選択したDOMをコピーしたと思います

0


タイトルとURLをコピーしました