オンライン WYSIWYG HTML エディター_JavaScript スキルの実装原則の簡単な分析
現在、Web サイト開発はユーザー エクスペリエンスをますます推進しており、ユーザーに利便性を提供するツールがますます増えています。オンライン HTML コンテンツ エディターは「古い」ものの 1 つであると考えるべきです。単純な機能を備えたものは、テキストの色やフォント サイズなどのテキスト スタイルの制御をユーザーに提供できますが、複雑な機能を備えたものは、Word に似た強力な機能を提供することもできます。現在、オープンソースのエディタは数多くありますが、実際に使いやすいものは多くないため、常に改良作業が行われています。
今日のインターネット上のほとんどのエディターは、比較的強力な機能を備えており、使用中には当然ながら多くの設定が必要になります。コードは複雑ではないため、そのような強力なエディターが必要ない場合は、自分で実装することができます。以下は、参考のために少し個人的な経験を述べたものです (例として ExtJS HTMLEditor を取り上げます)。
1. 初期化。ページの読み込みが完了したら、ページに IFrame を追加します (オプション)。ここで注意すべき点は、特定の要素が見つからないエラーを防ぐために、ページのステータスを判断するには、ページが完全に読み込まれるまで待ってから続行することです。
2. 編集機能を開きます。 IFrame を編集可能にします (以下のコードは ExtJS の HTMLEditor からのものです):
// iframe のウィンドウオブジェクトを取得
getWin : function(){
戻り Ext.isIE ? this.iframe.contentWindow : window.frames[this.iframe.name];
}、
//iframe のドキュメントオブジェクトを取得します
getDoc: function(){
return Ext.isIE ? this.getWin().document: (this.iframe.contentDocument || this.getWin().document);
}、
//ドキュメント オブジェクトを開き、FireFox と互換性を持たせるために初期化コンテンツをそれに書き込みます
doc = this.getDoc();
doc.open();
doc.write('
//ドキュメントオブジェクト編集モードを開きます
doc.designMode = "オン";
doc.close();
このようにして、このシンプルなエディターにコンテンツを書き込むことができます。
3. エディターのコンテンツを取得します。コードは次のとおりです:
//エディターのボディオブジェクトを取得します
var body = doc.body || doc.documentElement;
//エディターのコンテンツを取得します
var content = body.innerHTML;
//一部の特殊文字の置換など、コンテンツを処理します
// いくつかのコード
//コンテンツを返します
コンテンツを返す;
4. スタイル設定を追加します。上記のエディターは基本的な機能を実装していますが、実際には単純すぎるため、いくつかの単純なスタイルの実装を追加する必要があります。ドキュメントの execCommand メソッドは、このアイデアを可能にします。
//統一実行コマンドメソッド
function execCmd(cmd, value){
// doc オブジェクトを取得するには、上記のコードを参照してください
// execCommand メソッドを呼び出してコマンドを実行します
doc.execCommand(cmd, false, value === 未定義 ? null : value);
};
//選択したフォントを太字に変更します。Ctrl+B
execCmd('太字');
//下線、Ctrl+U
execCmd('下線');
//斜体に変更するには、Ctrl-I
execCmd('斜体');
//テキストの色を設定します
execCmd('forecolor', Ext.isSafari || Ext.isIE ? '#' color : color);
// カーソル位置にコンテンツを挿入します
function insertAtCursor(text){
//win オブジェクトを取得するには、上記のコードを参照してください
if(Ext.isIE){
win.focus();
var r = doc.selection.createRange();
If(r){
r.collapse(true);
r.pasteHTML(text);
}else if(Ext.isGecko || Ext.isOpera){
win.focus();
execCmd('InsertHTML', text);
}else if(Ext.isSafari){
execCmd('InsertText', text);
}
}
//カーソルが太字かどうか
var isBold = doc.queryCommandState('bold');
if(isBold){
//太字ボタンのスタイルを変更します
}
// もちろん、上記のコードはマージできます。これは単なるヒントです
//下線
doc.queryCommandState('下線');
//斜体
doc.queryCommandState('italic');
最後の注意事項: ブラウザーの互換性の問題に必ず注意し、互換性をテストするのに最後まで待たないでください。これほど大量の JavaScript コードの場合、調整はさらに困難になります。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









HTML の表の境界線に関するガイド。ここでは、HTML でのテーブルの境界線の例を示しながら、テーブル境界線を定義する複数の方法について説明します。

これは、HTML でのネストされたテーブルのガイドです。ここでは、テーブル内にテーブルを作成する方法をそれぞれの例とともに説明します。

HTML マージン左のガイド。ここでは、HTML margin-left の概要とその例、およびそのコード実装について説明します。

HTML テーブル レイアウトのガイド。ここでは、HTML テーブル レイアウトの値と例および出力について詳しく説明します。

HTML 入力プレースホルダーのガイド。ここでは、コードと出力とともに HTML 入力プレースホルダーの例について説明します。

HTML でのテキストの移動に関するガイド。ここでは、概要、マーキー タグが構文でどのように機能するか、および実装例について説明します。

HTML オンクリック ボタンのガイド。ここでは、それらの紹介、動作、例、およびさまざまなイベントでの onclick イベントについてそれぞれ説明します。
