我在使用下面的脚本处理文本编辑器时遇到了一些困难.我不确定是什么问题,但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);
}
Run Code Online (Sandbox Code Playgroud)
Tim*_*own 12
原因selectionStart和selectionEnd未定义的是您的textarea变量包含字符串,而不是对<textarea>元素的引用.你似乎意识到这一点,因为你在其他地方调用字符串方法,如substring.为了清楚起见,字符串没有selectionStart和selectionEnd属性; 做的对象是textareas和文本输入.