Javascript selectionStart&选定结束

时间:2010-08-22 21:26:31

标签: 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);
 }

1 个答案:

答案 0 :(得分:11)

selectionStartselectionEnd未定义的原因是您的textarea变量包含字符串,而不是对<textarea>元素的引用。您似乎已经意识到这一点,因为在其他地方您正在调用substring之类的字符串方法。需要明确的是,字符串没有selectionStartselectionEnd属性;做的对象是textareas和文本输入。