Text、TextNodeNN 6 IE 5 DOM 1

Text オブジェクトは、本書の多くの説明の中で "テキストノード" と呼んでいます。Microsoft では TextNode オブジェクトと呼んでいます。このオブジェクトは、開始タグと終了タグに囲まれた文字を格納する子オブジェクトを表しています。W3C DOM の抽象モデルでは、Text オブジェクトは自身とその基礎になる Node オブジェクトとの間の継承チェーン (NodeCharacterDataText) で存在しています。祖先オブジェクトである Node は、本章冒頭の説明にある共通のプロパティおよびメソッドを Text オブジェクトに自動的に継承します。主なプロパティとしては attributeschildNodesfirstChildlastChildlocalNamenamespaceURInextSiblingnodeNamenodeTypenodeValueownerDocumentparentNodeprefix、および previousSibling があります。主なメソッドとしては appendChild()cloneNode()hasAttributes()hasChildNodes()insertBefore()isSupported()normalize()removeChild()、および replaceChild() があります。Text オブジェクトはこの継承チェーンを通じてこの他にも後で示すいくつかのプロパティやメソッドを継承します。これらのプロパティやメソッドにより、正式な W3C DOM モデルで定義されている構造内にあるノードのコンテンツを操作できます。DOM はスクリプト言語によって異なり、JavaScript 用には文字列処理 (第 12 章を参照) で簡単に操作できる強力なプロパティやメソッドが用意されています。ブラウザのクライアント側 JavaScript 環境ではこれらのテクニックを自由に使用できます。

 

スクリプトで Text ノード (Internet Explorer では TextNode オブジェクト) を参照するには、ドキュメントツリー内でのノードの位置 (たとえば特定の要素ノードの先頭の子ノードなど) を示す参照か、document.createTextNode() メソッドの戻り値を使用するしかありません。

 
オブジェクト参照
 
elementReference.childReference
textNodeReference.siblingReference
 
オブジェクト固有のプロパティ
 
datalength
 
オブジェクト固有のメソッド
 
appendData()deleteData()insertData()replaceData()
splitText()substringData()
 
オブジェクト固有のイベントハンドラープロパティ

なし

blur()NN 2 IE 3 DOM 1

現在のオブジェクトからフォーカスを削除し、オブジェクトの onblur イベントを呼び出します。IE の最新バージョンを除いたすべてのブラウザで、フォーカスとブラーに対応する要素 (イベントとメソッドの両方) の範囲が制限されています。第 8 章の共通 tabindex 属性を参照してください。下位互換性を保つには、テキスト input 要素や textarea 要素など、フォーカスを設定できる要素に blur() メソッドを適用します。要素を無効にする手段を持たないブラウザでは、たとえば、onfocus="this.blur();" 属性をテキスト input 要素に割り当ててフィールドを広範囲で無効にすることができます。これは、粗雑な方法ではありますが、下位互換性を保つには効果的です。

 

同じページでは blur() メソッドと focus() メソッドを控えめに使用してください。処理中に警告ダイアログボックスが表示されると、ブラーとフォーカスの無限ループを間違って実行してしまう可能性があります。また、1 つのオブジェクトで blur() メソッドを呼び出すと、window オブジェクトなど、別のオブジェクトが onfocus イベントを受け取ることがあります。

 
パラメータ

なし

 
戻り値

なし

focus()NN 2 IE 3 DOM 1

現在のオブジェクトにフォーカスを設定し、オブジェクトの onfocus イベントを呼び出します。IE の最新バージョンを除いたすべてのブラウザで、フォーカスとブラーに対応する要素 (イベントとメソッドの両方) の範囲が制限されています。第 8 章の共通 tabindex 属性を参照してください。下位互換性を保つには、テキスト input 要素や textarea 要素など、フォーカスを設定できる要素に focus() メソッドを適用します。

 

テキストボックスにフォーカスを設定し、ボックス内の全テキストをあらかじめ選択するには、focus() メソッドに続いて select() メソッドを要素に使用します。警告ダイアログボックスを閉じるときなど、ウィンドウの切り替えが発生する場合は、これらのメソッドを個別の関数内に配置し、ダイアログの alert() メソッドに続く setTimeout() メソッドからその関数を呼び出します。Windows 版 IE では、この方法で一連のステートメントが正しく実行されます。

 
パラメータ

なし

 
戻り値

なし

recordNumberNN なし IE 4 DOM なし

読み取り専用

IE のデータバインディングと共に使用して、データセットにあるレコードのうち、要素 (データバインディングによってコンテンツが取得された要素) を生成したレコードを表す整数を返します。このプロパティの値を使用して、ADO (Active Data Objects) レコードセットから特定のレコードを検索できます。詳細については、recordset プロパティを参照してください。このプロパティはすべての IE 要素オブジェクトに定義されていますが、データバインディングに関連する他のプロパティは要素のサブセットに属しています。

 
 
<script for="tableTemplate" event="onclick">
				    myDataCollection.recordset.absoluteposition = this.recordNumber;
				    ...
				</script>
 

整数

 
既定値

null

disabledNN 6 IE 4 DOM 1

読み書き

ユーザーが要素を操作できるかどうかを示します。true に設定すると、要素はフォーカスを得ることができず、ユーザーは要素を変更できなくなります。通常、要素はページ上でグレー表示になります。このプロパティは、Windows 版 IE 5.5 以降のすべての HTML 要素オブジェクトで使用できます。IE 4 と IE 5 では、フォームコントロールにのみ適用されます。Netscape 6 以降では、フォームコントロールと style 要素オブジェクトで認識されます。使用できなくなったフォームコントロールの「名前/値」のペアは、フォームから送信されません。

 
 
document.getElementById("myButton").disabled = true;
 

true または false のブール値

 
既定値

false

tabIndexNN 6 IE 4 DOM 1

読み書き

ドキュメント内にあるすべてのフォーカス可能な要素のタブ順序内で、この要素の順番を示す番号です。タブ順序は一定の規則に従って決定されます。ユーザーがページ内で Tab キーを押すと、最初に tabIndex プロパティが 0 より小さく設定されている要素にカーソルが移動します。フォーカスは、tabIndex の値が一番小さい要素から開始して、値の一番大きい要素まで順番に移動します。ページやドキュメント内での物理的な位置は関係ありません。tabIndex の値が同じ要素が 2 つある場合、ドキュメント内で先頭に近い方の要素が最初にフォーカスを得ます。その後、tabIndex プロパティをサポートしない要素や、値が 0 に設定されている要素がフォーカスの対象となります。これらの要素はドキュメント内の配置順にフォーカスを受けます。

 

W3C DOM および Netscape 6 では、tabIndex プロパティは aareabuttoninputobjectselecttextarea の各要素オブジェクトに制限されています。IE 4 では、これに appletbodydivembedisindexmarqueespantable、および td が追加されます。IE 5 では、他のすべての表示可能な要素が追加されます。IE (のみ) で負の値を指定すると、要素がタブ順序から完全に削除されます。

 

Macintosh 版 IE 4 では、リンクとアンカーはタブ操作できないので、a 要素オブジェクトの tabIndex プロパティは無視されます。

 
 
document.getElementById("link3").tabIndex = 6;
 

整数

 
既定値

0

dataNN 6 IE 5 DOM 1

読み書き

テキストノード内の文字列を示します。このプロパティの値は nodeValue プロパティの値と同じです。どちらのプロパティを使用するかは、標準テキストのスクリプトにおいて構文的に読みやすい方を選択するとよいでしょう。

 
 
document.getElementById("myP").firstSibling.data = "Some new text.";
 

文字列

 
既定値

空の文字列

lengthNN 6 IE 5 DOM 1

読み取り専用

テキストノード内の文字数を示します。

 
 
var howMany = document.getElementById("myP").firstSibling.length;
 

整数

 
既定値

0

appendData()NN 6 IE 5(Mac)/6(Win) DOM 1

appendData("newText")

文字列パラメータとして渡された文字を現在のテキストノードの末尾に追加します。このコンテンツは未整形の文字で構成されているため、テキストノードに文を追加する場合には、スクリプトで文の間隔を指定する必要があります。

 
パラメータ
 
  • 追加するテキストの文字列値。文字列への参照 (ドキュメント内の別のテキストノードの data プロパティなど) を渡すと、参照先の値が挿入位置にコピーされます。
 
戻り値

なし

deleteData()NN 6 IE 5(Mac)/6(Win) DOM 1

deleteData(startOffsetcount)

startOffset に指定された 0 から始まる位置から、現在の言語の標準のテキスト方向へ count に指定された文字数分だけ、現在のテキストノードから文字列を削除します。指定した長さがデータの長さを超えている場合は、テキストノードの末尾まですべての文字を削除します。この場合、例外は発生しません。Netscape 6 の場合、これら 2 つのパラメータではソースコードの空白スペースを含めてカウントされます。

 
パラメータ
 
  • 削除する文字の開始点を示す 0 から始まる正の整数
  • 削除する文字数を示す正の整数
 
戻り値

なし

insertData()NN 6 IE 5(Mac)/6(Win) DOM 1

insertData(startOffset, "newText")

テキストノード内の 0 から始まる文字位置にテキストを挿入します。

 
パラメータ
 
  • 新しいテキストの挿入位置の後ろにある文字の位置を示す 0 から始まる正の整数
  • 挿入するテキストの文字列値。文字列への参照 (ドキュメント内の別のテキストノードの data プロパティなど) を渡すと、参照先の値が挿入位置にコピーされます。
 
戻り値

なし

replaceData()NN 6 IE 5(Mac)/6(Win) DOM 1

replaceData(startOffsetcount、"newText")

現在のテキストノード内のテキストを新しいテキストに置換します。削除される元の文字列は 0 から始まる開始点と文字数で指定します。3 番目のパラメータとして渡した新しい文字列は、テキストの削除によって空いたスペースに挿入されます。Macintosh 版 IE 5 ではバグにより、削除される元のテキストと同じ長さに新しいテキストが切り落とされます。

 
パラメータ
 
  • 削除する文字の開始点を示す 0 から始まる正の整数
  • 削除する文字数を示す正の整数
  • 残りのテキストが縮退される位置に挿入されるテキストを示す文字列値。文字列への参照 (ドキュメント内の別のテキストノードの data プロパティなど) を渡すと、参照先の値が挿入位置にコピーされます。
 
戻り値

なし

splitText()NN 6 IE 5(Mac)/6(Win) DOM 1

splitText(offset)

現在のテキストノードを 2 つの兄弟ノードに分割します。その他の点ではテキストに影響はありません。

 
パラメータ
 
  • 分割位置の後ろにある文字の位置を示す 0 から始まる正の整数
 
戻り値

2 番目のテキストノードへの参照

substringData()NN 6 IE 5(Mac)/6(Win) DOM 1

substringData(startOffset, count)

テキストノードコンテンツの指定されたセグメントのコピーを返します。コピーするセクションは 0 から始まる開始点と文字数で指定します

 
パラメータ
 
  • コピーする文字の開始点を示す 0 から始まる正の整数
  • コピーする文字数を示す正の整数
 
戻り値

文字列

accessKeyNN なし IE 4 DOM 1

読み書き

要素にフォーカスを移動するため (一部のブラウザ)、またはフォームコントロールやリンクアクションをアクティブにするための単一の文字キーです。リンクをアクティブにするためにアクセスキーと一緒に修飾キー (CtrlAlt、または Command) を押す必要があるかどうかは、使用するブラウザと OS によって決まります。Windows 版 IE 5 以降および Netscape 6 では、Alt キーを押す必要があり、文字キーの大文字と小文字は区別されません。Macintosh 版 IE 5 以降および Netscape 6 では、アクションを実行するには Ctrl キーを押す必要があります。

 

広く使用されている共通プロパティとしてここに記載されていますが、厳密にはすべての実装に当てはまるわけではありません。Netscape 6 (W3C DOM の場合) では、このプロパティが認識される要素は、aareabuttoninputlabellegend、および textarea だけです。IE 4 では、これに appletbodydivembedisindexmarqueeobjectselectspantable、および td が追加されています。ただし、label および legend は削除されました。IE 5 では、他のすべての表示可能な要素が追加されていますが、注意が必要です。input 要素とその他のフォーム関連要素の場合を除き、IE 5 以降ではアクセラレータキーの組み合わせで要素にフォーカスを移動するには、要素に tabindex 属性および tabIndex プロパティ値も (すべての値が 0 の場合でも) 指定する必要があります。Netscape では現在のバージョン 7 で、スクリプトによってプロパティ値を変更しても、UI のビヘイビアは変更されません。

 
 
document.links[3].accessKey = "n";
 

単一の英数字および句読点を示すキーボード文字

 
既定値

空の文字列