1
我在下面的腳本中使用我的文本編輯器時遇到了一些困難。我不知道什麼是錯,但selectionStart和selectionEnd以未定義的方式返回。Javascript selectionStart&selectionEnd
它假設在可編輯的iframe中獲得突出顯示的文本,然後將其替換。
var textarea = document.getElementById('editor').contentWindow.document.body.innerHTML;
if (document.selection)
{
textarea.focus();
var sel = document.selection.createRange();
alert(sel.text);
sel.text = '<b>' + sel.text + '</b>';
} else {
var len = textarea.length;
alert(len);
var start = textarea.selectionStart;
alert(start);
var end = textarea.selectionEnd;
alert(end);
var sel = textarea.substring(start, end);
alert(sel);
var replaced = '<b>' + sel + '<b>';
textarea = textarea.substring(0,start) + replaced + textarea.substring(end,len);
}
謝謝蒂姆。我如何修改它在沒有字符串的情況下工作? – Cory 2010-08-22 22:21:06
目前還不清楚你的意圖是什麼。從這個問題的其他問題和代碼的第一行開始,似乎您正在開發基於iframe的所見即所得編輯器。 textarea有些不同:它是一個純文本的表單控件,比如Stack Overflow中用來添加註釋的東西。如果你使用的是實際的textarea,那麼你可以使用它的'selectionStart'和'selectionEnd'屬性(IE中除外,但這是另一回事)。如果您使用的是可編輯的iframe,則需要使用其Selection對象。 – 2010-08-22 22:34:49
我明白了......恐怕可能是這種情況。我將如何使用iframes Selection對象?感謝你的幫助。 – Cory 2010-08-22 22:58:44