現在、当サイト「mozilla.org 日本語版」の和訳文書は更新されておらず、mozilla.org の原文 よりも内容が古くなっている可能性があります。ご不便をお掛けしますが、最新の情報は原文をご確認ください。



改訂:2002年11月15日

リッチテキスト編集コントロールです。(訳注;以下の URI もご参照下さい:Rich-Text Editing in Mozilla 1.3

リッチテキスト編集を可能にする:

ある文書があるとき、"designMode" 属性を加えて、それを "on" にして、編集可能な文書を手に入れることができます。 例えば、Javascript では、"edit" の id をもった iframe(インラインフレーム)があれば、次のようにしてその contentDocument を手に入れ、designMode を "on" に指定することができます:
document.getElementById("edit").contentDocument.designMode="on";

今のところ、designMode を "off" にすることで完全に編集を遮断することはできません。 designMode を"off" にすることによって命令によっては処理されなくなるでしょうが、文字を打つことや他の行動はまだ可能です。

命令を呼び出す:

execCommand

リッチテキスト編集が可能な文書がある場合、3つのパラメータとともに execCommand を要求することによってその文書上に具体的な命令を呼び出すことができます。 例えば、Javascript では、編集可能な文書があるとき、次のように要求することによって bold コマンドを呼び出すことができます:
editableDocument.execCommand("Bold", false, null);
注:designMode を "On" にしていなかったならば、エラーになるでしょう。 このことは、間違った文書で execCommand を要求するときにもまた、起こるかもしれません。

execCommand には3つの要求されたパラメータがあります。:
  1. 命令文字列 (command string)
  2. ユーザーインターフェースを示すための真偽値 (boolean flag for showing UI)
  3. 値文字列 (value string)
最初のパラメータは、命令を含む文字列です。 第2のパラメータは、真偽値です。 もしそれが真 (true) に指定されているなら、エラーになるでしょう (NS_ERROR_NOT_IMPLEMENTED)。 第3のパラメータは、値である文字列です。 例えばフォントサイズを指定する際の特定のサイズのような、詳細を要求される命令がいくつかあるでしょう。

「サポート済の命令」のセクションでは、それぞれの命令と、必要な一致している値 (value) についての文書があります。

queryCommandEnabled

この命令は編集可能な文書で命令します。 1つの要求されたパラメータがあります(命令文字列 (the command string) )。 もし命令が選択されている範囲か、校正挿入位置(またはその両方)で実行できる場合は、結果は真 (true) である真偽値になります。 もし現在選択されている範囲か、校正用挿入の位置を与えられた命令 (execCommand) が呼び出されるべきでないならば、結果は偽 (false) です。

queryCommandState

xxx

queryCommandValue

xxx

サポート済の命令:

下記の命令一覧はアルファベット順で表記されています。 命令は複数のものが組み合わさった場合があってもいいし、あなたのコードをもっと読みやすくするために何をしてもいいです。(訳注:タブや改行などを適切なところに入れてもよい、ということだと思います。)

命令

解説/実際に起こること
backcolor
????
この命令は現在のところテストされていません。
この命令は文書の背景色を指定します。
bold
none
選択された範囲がなれけば、挿入点から後に入力された文字を太字にします。(訳注:つまり、この命令を実行した後は文字を入力すると太字になるということです。Netscape DevEdge に実例がありますのでそちらもご参照下さい。以下に登場する同じような文面も同様です。)

選択された範囲があり、全ての文字がすでに太字ならば、太字が除かれます。 そうでないならば、全ての選択された文字が太字になります。
copy
none
選択された範囲があれば、この命令はその範囲をクリップボードにコピーします。 選択された範囲がなれけば、何も起こりません。

注:ショートカットキーが自動的にこの命令を実行します(典型例としては、accel-C)
createlink
url (href)
選択された範囲がなれけば、この命令は何も起こりません。 選択された範囲があれば、リンクの href として url パラメータとともに、選択された範囲のまわりにリンクが挿入されます。
cut
none
選択された範囲があれば、この命令は、クリップボードに選択された範囲をコピーして、エディットコントロールから選択された範囲を削除します。 選択された範囲がなければ、何も起こりません。

注:ショートカットキーが自動的にこの命令を実行します(典型例としては、accel-X)
delete
none
この命令は、選択された全てのテキストとオブジェクトを削除します。
fontname
????
この命令は、選択された範囲にフォントフェイス(字体)を指定します。 もしくは選択された範囲がなければ、挿入部分に指定します。
fontsize
????
この命令は、選択された範囲にフォントサイズを指定します。 もしくは選択された範囲がなければ、挿入部分に指定します。
forecolor
????
この命令は現在のところテストされていません。
この命令は、文字色を選択された範囲、もしくは挿入部分に指定します。
formatblock
????

heading
????

indent
none
挿入記号のあるところのブロックをインデント(字下げ)します。
inserthorizontalrule
none
この命令は挿入点に水平線を挿入します。

選択された範囲を削除しますか?
insertimage
url (src)
この命令は挿入点に (url で参照された) 画像を挿入します。

選択された範囲を削除しますか?
insertorderedlist
none

insertunorderedlist
none

italic
none
選択された範囲がなれけば、挿入点から後に入力された文字を斜体字に指定します。

選択された範囲があり、全ての文字がすでに斜体字ならば、斜体字が除かれます。 そうでないならば、全ての選択された文字が斜体字になります。
justifycenter
none

justifyfull
none

justifyleft
none

justifyright
none

outdent
none
挿入記号の位置しているところのブロックをアウトデントします。 もしブロックがアウトデントの命令をする前にインデントしていないときは、何も起きません。

注:もしアウトデントがなされていないとき、エラーを投げますか?
paste
none
この命令は時々、安全性につけこまれないようにするために実行できません。

この命令は挿入記号の位置にクリップボードの内容を貼り付けします。 選択された部分があるときは、クリップボードの内容を挿入する前にそれは削除されます。

注:ショートカットキーが自動的にこの命令を実行します(典型例としては、accel-V)
redo
none
この命令は前のアンドゥ行動をリドゥします。 もし直前の行動がアンドゥでなければ、この命令は何の効果もありません。

注:ショートカットキーが自動的にこの命令を実行します(典型例としては、accel-shift-Z)
removeformat
none

selectall
none
この命令は編集可能な領域の内容の全てを選択します。

注:ショートカットキーが自動的にこの命令を実行します(典型例としては、accel-A)
strikethrough
none
選択された範囲がなれけば、挿入点から後に入力された文字に対して抹消線が指定されます。

選択された範囲があり、全ての文字にすでに抹消線が引かれているならば、抹消線が除かれます。 そうでないならば、全ての選択された文字に抹消線が引かれます。
subscript
none
選択された範囲がなれけば、挿入点から後に入力された文字に対して下付き文字が指定されます。

選択された範囲があり、全ての文字がすでに下付き文字ならば、それが除かれます。 そうでないならば、全ての選択された文字が、下付き文字になります。
superscript
none
選択された範囲がなれけば、挿入点から後に入力された文字に対して上付き文字が指定されます。

選択された範囲があり、全ての文字がすでに上付き文字ならば、それが除かれます。 そうでないならば、全ての選択された文字が、上付き文字になります。
underline
none
選択された範囲がなれけば、挿入点から後に入力された文字に対して下線が指定されます。

選択された範囲があり、全ての文字がすでに下線が引かれているならば、それが除かれます。 そうでないならば、全ての選択された文字に下線が引かれます。
undo
none
この命令は前の行動をアンドゥします。 もしその文書において何も行動を起こしていなければ、この命令は何の効果もありません。

注:ショートカットキーが自動的にこの命令を実行します(典型例としては、accel-Z)
unlink
none