第 8 章 JSVRAX のリファレンス
8.7 Textarea HTC
8.7.1 機能と GUI
型 boolean型 jsvrax_result
説明 独自属性
型 JSVRAX.TSF.Result型のインスタンス。値については、各TIPの仕様を参照のこと
8.6.2.6 拡張スタイル
なし。
8.6.2.7 使用例
<HTML xmlns:JSVRAX> 1.
<HEAD>
<?IMPORT namespace="JSVRAX" implementation="/JSVRAX/Environment.htc"> 2.
<JSVRAX:environment /> 3.
</HEAD>
<BODY>
<TEXTAREA style="behavior:url(/JSVRAX/TSFAttacher.htc)" JSVRAX:TSFBootKey="alt 49"> 4.
今日はいい天気でした</TEXTAREA>
...
1. 「JSVRAX」というnamespaceを宣言。
2. 宣言したnamespaceに環境設定HTCの実装モジュールをインポート。
3. namespace付きで環境設定HTCをWebページに追加。
4. <TEXTAREA>に本HTCを適用。同時に、TSFBootKeyプロパティ値を"alt 49"に設定。
参考
文字処理定義による処理のタイミング
システムIMEからの入力の場合、次のタイミングで文字処理定義によるチェック/置換を行います。
・ [Enter]キーが押されたタイミング
・ キャレットが移動したタイミング
注意
補正について
・ システムIMEにおいて、[Enter]キーで変換候補が確定しないような特殊な設定がされている場合は、[Enter]キーが押された際に 正しく補正されないことがあります。
・ 改行文字を補正することはできません。
・ 動的な文字列補正時、キャレットが補正文字列の末尾に移動することがあります。
例) 補正すべき文字を入力し、マウスで入力領域内をクリックすると、本来はクリックした場所にキャレットが移動すべきですが、入 力文字列の末尾に移動することがあります。
・ Textarea HTCでは、利用者が入力不可文字を入力した際、altChar属性に指定した代替文字に自動補正します。Textarea HTC
による文字表示/入力部品上で入力抑止は行いたいが、代替文字への自動補正は不要(行いたくない)という場合は、次のようにし てください。
- Textarea HTCでは自動補正を動作させないためにaltChar属性を指定しないようにする
- 入力抑止を行うためにJSVRAX.Utility.CharBehavior.Parserクラスを使用し、アプリケーション側で文字列に対する入力抑止 のチェックを行う
合成文字について
合成文字(結合文字)の表示については、基本的には<INPUT type="text"><TEXTAREA>と同じ動作となります。ただし、JSVRAX.TSF が起動している場合は、合成文字の間にキャレットが入ると文字が2つに分裂(例 「け|゛」)し、それ以外は合成して表示します(例
「げ|」)。
また、Windows 2000 Professional / Windows 2000 Server / Windows 2000 Advanced Serverは、合成文字を正式サポートしていない
ため、本機能でも同様にサポートしません。上記OSで合成文字を含むUnicode(2004MS)の追加文字を流通させる場合は、文字処 理定義において、追加文字を画像で表示するよう定義してください。
文字列の流し込み結果について
本HTCと<TEXTAREA>とで、文字列の折り返し位置などの流し込み結果が異なることがあります。
例えば、英単語のあとに半角空白がある場合、一般的には半角空白の前で折り返されるものが、本HTCでは英単語の途中で分かれ ることがあります。
また、「ソフトハイフン(U+00AD)」は、文字コードは保持されますが、機能しません。
submit機能について
本HTCではsubmitのためのフォーム部品を書き出しません。値をsubmitする場合は、submit用のフォーム部品を利用者が用意し、
本HTCから取得した値を代入して、submitしてください。
◆文字編集
文字編集時に可能な操作は「表8.1 Textarea HTC : 文字編集の機能一覧」のとおりです。
表
8.1 Textarea HTC : 文字編集の機能一覧操作名称 内容 キー操作 マウス操作
キャレット移動 キャレットを移動させる。 ・ カーソルキー
・ [Home](行頭)
・ [End](行末)
・ [PageUp](前頁)
・ [PageDown](次頁)
・ [Ctrl]+[Home](文頭)
・ [Ctrl]+[End](文末)
クリックなど、一般的なキャレッ ト移動操作
範囲選択 文字列の範囲選択を行う。 ・ [Shift]+カーソルキー
・ [Shift]+[Home]
・ [Shift]+[End]
・ [Shift]+[PageUp]
・ [Shift]+[PageDown]
・ [Ctrl]+[A](全選択)
一般的な範囲選択操作
キーボードからの 文字入力
システムIMEあるいはJSVRAX.TSFによ
る文字入力を受け付ける。入力文字列は 文字処理定義に従って表示する。
システムIMEあるいは
JSVRAX.TSFの仕様に従う
システムIMEあるいは
JSVRAX.TSFの仕様に従う
後退 キャレットの左の文字を削除する。 [BackSpace] なし 削除 キャレットの右の文字を削除する。 [Delete] なし 改行 キャレット位置に改行文字を挿入する。 [Enter] なし コピー/カット/ペー
スト
選択範囲の文字列をコピー/カットし、キャ レット位置にペーストする。文字処理定義 に従い、クリップボードへの入力時は文字 にデコードし、クリップボードからの出力時 は表示文字列にエンコードする。
・ [Ctrl]+[C](コピー)
・ [Ctrl]+[X](カット)
・ [Ctrl]+[V](ペースト)
なし
ドラッグ/ドロップ 選択範囲の文字列をドラッグ/ドロップする。
Ctrlが押されている場合は、選択範囲の移 動でなくコピーになる。文字処理定義に従 い、トランスファバッファへの入力時は文字 にデコードし、トランスファバッファからの出 力時は表示文字列にエンコードする。
なし 一般的なドラッグ/ドロップ操作
挿入/上書き 文字列入力時の挿入/上書きモードをトグ ルする。
[Insert] なし
JSVRAX.TSFの
起動/終了
JSVRAX.TSFを起動/終了する。 JSVRAX.TSF起動/終了キー なし
注意
各操作に関する注意事項は次のとおりです。
操作名称 注意事項
キャレット移動 ・ JSVRAX.TSF起動時の[PageUp]や[PageDown]は無効。
・ 改行文字でなく、エディタの文字送り機能により折り返されている行において、JSVRAX.TSF起動時に
[Home]や[End]を行うと、見た目の行頭や行末にキャレットが移動せず、1つずれた位置に移動することが
ある。また、そのような行の行頭/行末の部分にキャレットを移動させると、文字送りが変わることがある。
・ 本HTCの上に別のDOMエレメントを重ねると、JSVRAX.TSF起動中のカーソル移動が動作しなくなる ことがある。
範囲選択 ・ JSVRAX.TSF起動時の[Shift]+カーソルキー(上下)、[Shift]+[Home]、[Shift]+[End]、[Shift]+[PageUp]や
[Shift]+[PageDown]は無効。
・ モーダルダイアログ上では、[Ctrl]+[A]は無効。
・ 本HTCの上に別のDOMエレメントを重ねると、マウスによる範囲選択が動作しなくなることがある。
・ JSVRAX.TSFが起動していない状態で、左カーソルキーを利用して空改行を選択すると、一度に2行選
択される。
コピー/カット/ペー スト
・ システムクリップボードを使用するため、ブラウザの警告が出ることがある。
・ システムクリップボードを使用するため、他のWindowsアプリケーションとの文字列受渡しも可能。
・ 操作可能文字列長には制限があり、処理最大長を超過すると処理を行わない。詳細は「◆操作文字数の 制限と文字列長補正」を参照のこと。
ドラッグ/ドロップ ・ 他アプリケーションへのドロップ時の動作はドロップ先のアプリケーションによって異なる。
・ 操作可能文字列長には制限があり、処理最大長を超過すると処理を行わない。詳細は「◆操作文字数の 制限と文字列長補正」を参照のこと。
・ JSVRAX.TSF起動時、本HTCへのドロップは無効。
・ 文字画像の上へのドラッグ、および文字画像を起点(マウスダウン位置)にしたドラッグは無効。
・ 1行目、あるいは文字のある領域にドラッグすること。
挿入/上書き ・ システムIME/JSVRAX.TSFによる入力時は、常に挿入モードで動作する。
・ 画像で表示している文字は上書きされない。
◆初期表示文字列の指定
<TEXTAREA>同様、本HTCのタグで囲まれた文字列を本HTCの初期表示文字列とします。文字列に含まれる文字参照表現は、
実体化して表示します。
◆操作文字数の制限と文字列長補正
本HTCは、文字表示/編集の度に、文字処理定義によるチェック/置換、あるいは、文字と表示用データとのエンコード/デコードを行 います。そのため、扱える文字数に制限を設けています。
最大長について
本HTCのコンテンツ文字列の最大長は約1000文字、コピー&ペースト/ドラッグ&ドロップのターゲット文字列は500文字(ただし、
JSVRAX.TSF起動時は、数文字短くなることがあります)です。改行(¥r¥n)と4byte文字は2文字と数え、初期表示文字列の文字
参照はバラバラの文字数で数えます。コンテンツ文字列の最大長は、本HTCの拡張プロパティであるmaxLengthプロパティで設定 (変更)することができます。
例
「あいう」を初期表示すると「あいう」になりますが、初期表示時の文字列長チェックにおいては10文字と数えます。
初期文字列/innerHTMLプロパティには1000文字以上の文字列が指定/格納できますが、本HTCの機能においては、先頭の1000 文字までを対象とします。なお、初期表示時およびvalueプロパティの設定時は、maxLengthプロパティの値ではなく、本HTCの コンテンツ文字列最大長で長さ補正を行います。この動きは、<INPUT type="text">のmaxLengthプロパティの動きと同じです。
注意
・ 本HTCに格納される文字列は、必ずしもmaxLengthプロパティの長さに収まっているわけではないため、必ず別途チェックを行っ てください。
・ 本HTCのコンテンツ文字列最大長に接近した値を文字列長とすると、文字参照表現が入ってきた場合に限界を超えることがある ため、充分に余裕を持たせた値をmaxLengthに指定してください。
・ クライアントスペックが低い場合など、大量の文字を扱う余裕が無い場合は、maxLengthを少なめに設定してください。
◆警告表示
オペレータに対する情報通知として、本HTC上部に警告エレメントを表示します。
図
8.2 Textarea HTC : 警告表示警告エレメントは、警告アイコンとスクロールメッセージとで構成されます。メッセージが2回スクロールしたら警告エレメントを消します。
メッセージ部は、マウスオーバされるまで半透明で表示します。
◆JSVRAX.TSF の処理前イベントを発生
「◆JSVRAX.TSFの処理前イベントを発生」を参照してください。