リッチテキスト編集コントロールです。(訳注;以下の URI もご参照下さい:Rich-Text Editing in Mozilla 1.3)
リッチテキスト編集を可能にする:
ある文書があるとき、"designMode" 属性を加えて、それを "on" にして、編集可能な文書を手に入れることができます。
例えば、Javascript では、"edit" の id をもった iframe(インラインフレーム)があれば、次のようにしてその contentDocument を手に入れ、designMode を "on" に指定することができます:
今のところ、designMode を "off" にすることで完全に編集を遮断することはできません。 designMode を"off" にすることによって命令によっては処理されなくなるでしょうが、文字を打つことや他の行動はまだ可能です。
document.getElementById("edit").contentDocument.designMode="on";
今のところ、designMode を "off" にすることで完全に編集を遮断することはできません。 designMode を"off" にすることによって命令によっては処理されなくなるでしょうが、文字を打つことや他の行動はまだ可能です。
命令を呼び出す:
execCommand
リッチテキスト編集が可能な文書がある場合、3つのパラメータとともに execCommand を要求することによってその文書上に具体的な命令を呼び出すことができます。
例えば、Javascript では、編集可能な文書があるとき、次のように要求することによって bold コマンドを呼び出すことができます:
注:designMode を "On" にしていなかったならば、エラーになるでしょう。
このことは、間違った文書で execCommand を要求するときにもまた、起こるかもしれません。
execCommand には3つの要求されたパラメータがあります。:
「サポート済の命令」のセクションでは、それぞれの命令と、必要な一致している値 (value) についての文書があります。
editableDocument.execCommand("Bold",
false, null); execCommand には3つの要求されたパラメータがあります。:
- 命令文字列 (command string)
- ユーザーインターフェースを示すための真偽値 (boolean flag for showing UI)
- 値文字列 (value string)
「サポート済の命令」のセクションでは、それぞれの命令と、必要な一致している値 (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 |