テンプレート

このサンプルでは、初期化するときにテンプレートを設定するほか、テンプレートボタンやコマンドの実行で、登録したテンプレートがエディタに挿入されることを確認できます。

リッチテキストエディタ(GcRichTextEditor)コントロールは、テンプレート機能を提供します。 プラグインと設定方法 テンプレート機能を有効にするには、plugins プロパティに GcRichTextEditorPluginItem.Template の値を設定してください。 また、ツールバーに追加したい場合は GcRichTextEditorToolbarItem.Template を、コンテキストメニューに追加したい場合は GcRichTextEditorMenuItem.Template を設定します。 テンプレート内容の設定 templates プロパティを利用することで、編集エリアに挿入するテンプレートを定義することができます。 また、テンプレートを定義するには、以下の内容を設定することができます。 プロパティ 説明 title テンプレートのタイトルを設定する description テンプレートの説明文を設定する content テンプレートの内容を設定する テンプレートの挿入 ツールバーのテンプレートボタンからテンプレートを挿入するほか、以下の方法でソースコードからテンプレートを設定することもできます。 初期化時に指定のテンプレートを挿入する コマンド実行で指定のテンプレートを挿入する
import "@grapecity/inputman.richtexteditor/CSS/gc.inputman.richtexteditor.css"; import "@grapecity/inputman/CSS/gc.inputman-js.css"; import { InputMan } from "@grapecity/inputman.richtexteditor"; import * as GcCommon from "@grapecity/inputman"; InputMan.appearanceStyle = InputMan.AppearanceStyle.Modern; const gcRichTextEditor = new InputMan.GcRichTextEditor( document.getElementById("gcRichTextEditor"), { baseUrl: window.location.origin + "/inputmanjs/demos/lib/purejs/node_modules/@grapecity/inputman.richtexteditor/JS", plugins: [InputMan.GcRichTextEditorPluginItem.Template], toolbar: [InputMan.GcRichTextEditorToolbarItem.Template], contextmenu: [InputMan.GcRichTextEditorMenuItem.Template], templates: [ { title: "テンプレートデモ1", description: "InputManJS製品ヘルプ", content: "<p>InputManJSデモサイト</p><p><a href='https://demo.mescius.jp/inputmanjs/docs/how_to'>InputManJS製品ヘルプ</a></p>", }, { title: "テンプレートデモ2", description: "APIリファレンス", content: "<p>InputManJS APIリファレンスサイト</p><p><a href='https://demo.mescius.jp/inputmanjs/api/'>InputManJS APIリファレンス</a></p>", }, ], templateIndex: 0, } ); const templateCmd = new GcCommon.InputMan.GcComboBox( document.getElementById("setTemplate"), { items: ["テンプレートデモ1", "テンプレートデモ2"], } ); templateCmd.setSelectedIndex(0); templateCmd.addEventListener( GcCommon.InputMan.GcComboBoxEvent.SelectedChanged, (e) => { gcRichTextEditor.execCommand( InputMan.GcRichTextEditorCommand.Template, e.selectedIndex ); } );
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>リッチテキストエディタコントロール - テンプレート</title> <!-- SystemJS --> <script src="node_modules/systemjs/dist/system.src.js"></script> <script src="systemjs.config.js"></script> <script> System.import('./src/app'); </script> </head> <body> <textarea id="gcRichTextEditor"></textarea> <table class="sample"> <tr> <th>テンプレート挿入</th> <td> <select id="setTemplate"></select> </td> </tr> </table> </body> </html>
System.config({ transpiler: 'plugin-babel', babelOptions: { es2015: true }, meta: { '*.css': { loader: 'css' } }, paths: { // paths serve as alias 'npm:': 'node_modules/' }, // map tells the System loader where to look for things map: { '@grapecity/inputman': 'npm:@grapecity/inputman/index.js', '@grapecity/inputman/CSS': 'npm:@grapecity/inputman/CSS', '@grapecity/inputman.richtexteditor': 'npm:@grapecity/inputman.richtexteditor/index.js', '@grapecity/inputman.richtexteditor/CSS': 'npm:@grapecity/inputman.richtexteditor/CSS', 'css': 'npm:systemjs-plugin-css/css.js', 'plugin-babel': 'npm:systemjs-plugin-babel/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel/systemjs-babel-browser.js' }, // packages tells the System loader how to load when no filename and/or no extension packages: { src: { defaultExtension: 'js' }, "node_modules": { defaultExtension: 'js' }, } });