JavaScript入力コントロール「InputManJS」に待望のリッチテキストエディタが登場! Webフォームで差を付けよう
軽量で多機能なJavaScript入力コントロール「InputManJS」の紹介
ダウンロード サンプルファイル (183.8 KB)
実用例:リッチテキストエディタを利用した作業日報の入力フォーム
最後に、リッチテキストエディタおよび、InputManJSの他の入力コントロールを利用した実用例として、IT企業の作業日報を想定した入力フォームを紹介します(図10)。
この入力フォームでは、リッチテキストエディタの他に、名前選択に(編集可能な)コンボコントロール、日時指定に日付時刻コントロール、作業概要の選択に(複数選択可能な)コンボコントロールを利用します。これらのコントロールを含めたInputManJSの各種コントロールの機能や特長はグレープシティのデモサイトで確認することができます。実装の詳細はサンプルコードを参照してください。ここでは、ポイントとなる実装をいくつか紹介します。
「プレビュー」「新規」ボタン:リッチテキストエディタの機能を外部から実行
図10で「プレビュー」ボタンをクリックすると、リッチテキストエディタのプレビューを表示します(図11)。
この処理はリスト11の通り、リッチテキストエディタのexecCommandで「プレビュー(Preview)」機能を外部から実行して実現しています。
gcRichTextEditor.execCommand(GC.InputMan.GcRichTextEditorCommand.Preview);
同様に「新規」ボタンでは、execCommandで「新しいドキュメント(NewDocument)」機能を呼び出して、リッチテキストエディタの入力をクリアします。
「投稿」ボタン:リッチテキストエディタの内容をHTMLで参照
図10で「投稿」ボタンをクリックすると、入力フォームの内容をまとめて1枚に表示します(図12)。
この処理は、リスト12の通り実装されています。
// 日報に表示する内容を取得 ...(1)
const title = `<h1>作業日報(${gcComboBoxUserName.text})</h1>`;
const postTime
= `<p>${gcDateTimeDay.text} ${gcDateTimeTimeFrom.text}
- ${gcDateTimeTimeTo.text} </p>`;
const tasks = `<p>作業概要:${gcComboBoxTasks.text}</p>`;
const richText = gcRichTextEditor.getContent('html'); // ...(1a)
// SanitizerでHTML文字列を安全に投稿エリアに設定 ...(2)
const sanitizer = new Sanitizer();
document.getElementById('content')
.setHTML(title +'<hr class="separator">'
+ postTime + tasks + richText, sanitizer);
(1)で各コントロールから日報に表示する内容を取得します。リッチテキストエディタの内容は、getContent('html')メソッドを実行するとHTML形式で取得できます(1a)。
取得した内容を設定する(2)の処理で利用しているSanitizerは、HTML文字列を安全にHTML内に挿入するサニタイズ機能を提供します。詳細はMozillaのドキュメントを参照してください。
まとめ
本記事では、Webフォーム用部品「InputManJS」に追加されたリッチテキストエディタについて、さまざまな機能や利用例を紹介しました。現状、さまざまなリッチテキストエディタが提供されていますが、商用利用可能で、APIの参照やサポートが日本語で対応できる点で、InputManJSのリッチテキストエディタは有力な選択肢と言えます。
参考資料
この記事は参考になりましたか?
既に会員の方はを行ってください。
- ComponentZine(InputMan)連載記事一覧
-
- JavaScript入力コントロール「InputManJS」に待望のリッチテキストエディタ...
- JavaScript入力コントロール「InputManJS」にBootstrapを組み合わ...
- 便利な入力部品が多数追加! JavaScript入力コントロール「InputManJS」最...
- この記事の著者
-
WINGSプロジェクト 吉川 英一(ヨシカワ エイイチ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
提供:グレープシティ株式会社
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
