要素の一部を変更できる独自のテキストエディタがありますtextarea
。スパン要素で動作するように調整したいと思います。スパンへの特別な愛着はありません。目標は、テキストエリアではなく、誰かにhtmlを編集させることです。IEでは問題なく動作していますが、Mozillaでいくつかの問題が発生しています。
フォーム入力の代わりにスパンを使用しているのでinnerHTML
、値の代わりに使用しています。ただし、とは対照的に、selectionStart
とselectionEnd
関数を機能させることができないようです。innerHTML
value
これが正常に機能するtextarea
コードです。
html
<textarea id="textarea>Some text goes here</textarea><a href="javascript:void() onclick="editText">edit</a>
JS
function editText() {
var len = displaytext.value.length;
var start = displaytext.selectionStart;
var end = displaytext.selectionEnd;
var sel = displaytext.value.substring(start, end); returns selection ok
alert(sel);
}
ただし、次の適応は、選択の開始と終了を制限するものではありません。
html
<span id="textarea>Some text goes here</span><a href="javascript:void() onclick="editText">edit</a>
JS
function editText() {
var len = displaytext.innerHTML.length; //works ok
var start = displaytext.selectionStart; //does not seem to work
var end = displaytext.selectionEnd; //does not seem to work
var sel = displaytext.innerHTML.substring(start, end); //returns whole innerHTML not selection
alert(sel);
}
selecionStart
onに問題はありinnerHTML
ますか?回避策?構文エラー?提案をありがとう。