本HTCはエレメントビヘイビアであり、一般的なエレメントビヘイビアの機能に本HTCの独自実装を加えたものが、本HTCの全機能となります。ここでは、本HTCの独自実装についてのみ説明します。
参考
「エレメントビヘイビア」とは、HTCをHTMLのカスタムエレメントとして扱えるInternet Explorerの技術で、idプロパティやsetAttribute()メソッドなど、DOMエレメントの基本的なインタフェースを持っています。
利用可能/不可能なインタフェースなどについて詳細は「8.11 エレメントビヘイビアのインタフェースについて」を参照してください。
注意
本HTCでは、一部の文字の表示/入力に注意が必要です。注意が必要な文字(コード)と、<TEXTAREA>および本HTCでの表示状態は次のようになります。また、下記以外の制御文字を入力した場合にも、その制御文字が消えたり、空白(U+0020)に置き換えられる場合があります。
入力文字 | <TEXTAREA> | <JSVRAX:textarea> | 備考 |
---|---|---|---|
U+0009 | U+0009 | U+0020 | 文字参照形式でも同様 |
U+000A | コンテンツ文字列の先頭にある場合は消失、それ以外はU+000D、U+000A | U+000D、U+000A | 文字参照形式でも同様 |
U+000D | コンテンツ文字列の先頭にある場合は消失、それ以外はU+000D、U+000A | U+000D、U+000A | 文字参照形式でも同様 |
U+00A0 | U+00A0 | U+0020 | 文字参照形式でも同様 |
| U+00A0 | U+0020 | 文字参照形式でも同様 |
一般属性のdisabledをfalse(上位エレメントのdisabled属性変更など、結果的にターゲットエレメントの属性がfalseになる場合も含む)にしてはいけません。
拡張プロパティの変更は、本HTCにフォーカスがない状態で行ってください。
本HTCでは、文字の存在しない行にはペーストできません。
本HTCをFRAME/IFRAMEで利用する場合、次の現象が発生することがあります。
JSVRAX.TSF未起動状態の削除/コピー&ペーストが行えない
JSVRAX.TSF起動時にコピーが行えない
これらの現象は、Internet Explorerの不具合によるものです。詳細は、Microsoftのサポート技術情報KB300829を参照してください。なお、KB300829の記事はInternet Explorer 6を対象に記載されていますが、上記現象はInternet Explorer 11でも発生します。
innerHTMLは、設定のみ有効です。読み出さないようにしてください。
本HTCを割り当てたエレメントのコンテンツに対し、TextRangeを用いてアクセスしないでください。
送信ボタン等を押させるなどのGUI操作を行わず、スクリプトなどにより任意のタイミングで値を送信した場合、入力途中の未補正文字列を含んだままの値が送信される可能性があります。エレメントからフォーカスが外れているなど、文字入力中では無いことが明らかな状態で値を送信するようにしてください。
本HTCを使ったとしても、何らかのトラブルによって、補正されない文字列がサーバに送信される可能性があります。送信情報の確認画面を用意し、サーバ側で再チェックを行うなど、システムの各フェーズで必ず値をチェックするようにしてください。
本HTCは、文字の表示/入力やカーソル移動/範囲選択などをJavaScriptにより実装していたり、JSVR-Webサービスと通信して、代替画像表示も行うなど、他のHTCや、標準的なJavaScriptロジックなどと比較して、処理コストが高い機能です。そのため、必要な場所にだけ、本HTCによる文字表示/入力フィールドを使うようにしてください。1画面に本HTCを複数組み込む際は、処理性能や動作に支障がないことを充分に確認してから運用するようにしてください。
/%JSVRAX_PATH%/Textarea.htc
◆namespace
JSVRAX
注意
タグおよびJSVRAXが拡張実装するプロパティ/イベントに付加してください。
変更してはいけません。
◆name
jsvrax_textarea
注意
通常は不要です。使い方については、Internet ExplorerのHTCに関するドキュメントを参照してください。
◆urn
http://jsvr.fujitsu.com/client/jsvrax/textarea
注意
通常は不要です。使い方については、Internet ExplorerのHTCに関するドキュメントを参照してください。
◆tagName
textarea
◆コンテンツ
あり
コンテンツ文字列の指定方法については、「◆初期表示文字列の指定」を参照してください。
◆TSFBootKey
説明はTSFAttacher#TSFBootKeyを参照してください。
◆TSFAutoBoot
説明はTSFAttacher#TSFAutoBootを参照してください。
◆TIPsBootKeys
説明はTSFAttacher#TIPsBootKeysを参照してください。
◆charBehavMap
本HTCおよびJSVRAX.IMEのインラインかな漢字変換TIPなどで使用する文字処理定義を設定/返却します。
説明はJSVRAX.IMEのインラインかな漢字変換TIP#charBehavMapを参照してください。
◆altChar
説明はTSFAttacher#altCharを参照してください。
◆editMode
編集モードを設定/返却します。
<ELEMENT JSVRAX:editMode="_mode"… >
element["JSVRAX:editMode"] = _mode
上記のような一般的なDOMアクセス
_mode
型 | string型 |
正常値 |
|
デフォルト | null |
判定/補正 | 設定時/あり |
注意
本エレメントのdisabled属性に関しては「8.11 エレメントビヘイビアのインタフェースについて」を参照してください。
◆multiLine
コンテンツを複数行で表示するか否かを設定/返却します。
<ELEMENT JSVRAX:multiLine="_multi"... >
element["JSVRAX:multiLine"] = _multi
上記のような一般的なDOMアクセス
_multi
型 | boolean型 |
正常値 | 複数行で表示(<TEXTAREA>相当)する場合はtrue、それ以外はfalse |
デフォルト | true |
判定/補正 | 設定時/あり |
注意
複数行で使用する場合、縦スクロールバーを消すことはできません。
複数行で使用する場合、本HTCのエレメントに対して高さを指定しないと、入力文字列の行数に従って、エレメントの高さが変わります。
単一行で使用し、かつDOCTYPEによりXHTMLなどのstandardレンダリングモードを指定している場合は、本HTCのエレメントに対して高さを指定しないと、縦方向に潰れた入力域になります。
◆maxLength
コンテンツ文字列の最大長を設定/返却します。
<ELEMENT JSVRAX:maxLength="_length"... >
element["JSVRAX:maxLength"] = _length
上記のような一般的なDOMアクセス
_length
型 | number型 |
正常値 | 本HTCで表示/編集可能な文字列の最大長(1000)を超えない数値。0以上。 |
デフォルト | 本HTCで表示/編集可能な文字列の最大長(1000) |
判定/補正 | 設定時/あり |
注意
コンテンツ文字列の最大長については「◆操作文字数の制限と文字列長補正」を参照してください。
◆value
コンテンツのテキスト値を設定/返却します。
N/A
element["JSVRAX:value"] = _val
上記のような一般的なDOMアクセス
_val
型 | string型 |
正常値 | コンテンツ文字列の最大長を超えない長さの文字列 |
デフォルト | 空文字列 |
判定/補正 | 設定時/あり |
注意
初期表示文字列については「◆初期表示文字列の指定」を参照してください。
本プロパティによる値の設定/返却には処理コストがかかります。そのため、呼び出し回数は極力減らすようにしてください。
◆jsvrax_bootTSF
説明はTSFAttacher#jsvrax_bootTSF()を参照してください。
◆jsvrax_isTSFBooting
説明はTSFAttacher#jsvrax_isTSFBooting()を参照してください。
◆jsvrax_reset
innerHTMLを使ってコンテンツを作り直します。
element.jsvrax_reset()
なし
◆jsvrax_reflectStyle
スタイル情報を読み直します。
element.jsvrax_reflectStyle()
なし
注意
本メソッドは、以下の手段以外で動的スタイル変更を行った場合に使用してください。
element.style.cssTextに対してスタイル宣言文字列を指定する
element.style.colorなどのプロパティを直接指定する
element.idあるいはelement.classNameを変更し、スタイルセレクタを変更する
◆onbeforetsfperform
説明はTSFAttacher#onbeforetsfperformを参照してください。
◆onaftervaluechange
valueの値が変更された後に発生します。
<ELEMENT JSVRAX:onaftervaluechange="handler" ...>
element["JSVRAX:onaftervaluechange"] = "handler"
上記のような一般的なDOMアクセス
キャンセラブル | No |
デフォルト処理 | N/A |
srcElement
説明 | 一般属性。但し、変更不可。 |
srcUrn
説明 | 一般属性。本HTCのURN。 |
◆oninitcomplete
エレメントの初期化終了時に発生します。
<ELEMENT JSVRAX:oninitcomplete="handler" ...>
element["JSVRAX:oninitcomplete"] = "handler"
上記のような一般的なDOMアクセス
キャンセラブル | No |
デフォルト処理 | N/A |
srcElement
説明 | 一般属性。但し、変更不可。 |
srcUrn
説明 | 一般属性。本HTCのURN。 |
◆jsvrax--padding-top
エレメントの上パディングサイズを設定/返却します。
{ jsvrax--padding-top : _padding }
element.style["JSVRAX:jsvrax--padding-top"] = _padding
上記のような一般的なDOMアクセス
_padding
型/正常値 | 一般属性のpadding-topと同じ。 |
デフォルト | 1px |
判定/補正 | 実行時/なし |
◆jsvrax--padding-right
エレメントの右パディングサイズを設定/返却します。
{ jsvrax--padding-right : _padding }
element.style["JSVRAX:jsvrax--padding-right"] = _padding
上記のような一般的なDOMアクセス
_padding
型/正常値 | 一般属性のpadding-rightと同じ。 |
デフォルト | 1px |
判定/補正 | 実行時/なし |
◆jsvrax--padding-bottom
エレメントの下パディングサイズを設定/返却します。
{ jsvrax--padding-bottom : _padding }
element.style["JSVRAX:jsvrax--padding-bottom"] = _padding
上記のような一般的なDOMアクセス
_padding
型/正常値 | 一般属性のpadding-bottomと同じ。 |
デフォルト | 1px |
判定/補正 | 実行時/なし |
◆jsvrax--padding-left
エレメントの左パディングサイズを設定/返却します。
{ jsvrax--padding-left : _padding }
element.style["JSVRAX:jsvrax--padding-left"] = _padding
上記のような一般的なDOMアクセス
_padding
型/正常値 | 一般属性のpadding-leftと同じ。 |
デフォルト | 1px |
判定/補正 | 実行時/なし |
<HTML xmlns:JSVRAX> 1. <HEAD> <?IMPORT namespace="JSVRAX" implementation="/JSVRAX/Environment.htc " > 2. <JSVRAX:environment /> 3. <?IMPORT namespace="JSVRAX" implementation="/JSVRAX/Textarea.htc" > 4. <HEAD> <BODY> <FORM action="..." onsubmit="importValue()"> 5. <INPUT name="memoReal" type="hidden"> 6. <JSVRAX:textarea id="memoVirtual" JSVRAX:TSFBootKey="alt 49" JSVRAX:multiLine="false"> 7. 今日はいい天気でした<JSVRAX:textarea> ... </FORM> <SCRIPT> function importValue() { document.getElementsByName("memoReal")[0].value = document.getElementById("memoVirtual")["JSVRAX:value"]; 8. } </SCRIPT> ...
「JSVRAX」というnamespaceを宣言。
宣言したnamespaceに環境設定HTCの実装モジュールをインポート。
namespace付きで環境設定HTCをWebページに追加。
宣言したnamespaceに本HTCの実装ファイルをインポート。
onsubmitで、値を移しかえるメソッドが呼ばれるように定義。
submitのための<INPUT>を定義。
namespace付きで本HTCをWebページに追加。同時に、TSFBootKeyプロパティ値を"alt 49"に設定。
submitのための<INPUT>に本HTCの値を代入。