我正在使用以下函数在 contenteditable div 中获取选定的文本范围。这在 IE 中可以正常工作,但在 Firefox 和 Chrome 中不行。
谁能告诉我我需要如何调整它以便它在 FF 和 Chrome 或至少其中一个(除了 IE)中工作?它可以在当前版本中运行就足够了。这样做的想法是通过另一个从这里获取“selTxt”的函数来替换选定的文本。
获取选择的功能(在 IE 中工作):
function GetSelection()
{
selTxt = '';
if (typeof window.getSelection != "undefined")
{
var sel = window.getSelection();
if (sel.rangeCount)
{
var container = document.createElement('div');
for (var i = 0, len = sel.rangeCount; i < len; ++i)
{
container.appendChild(sel.getRangeAt(i).cloneContents());
}
selTxt = container.innerHTML;
}
}
else if (typeof document.selection != 'undefined')
{
if (document.selection.type == 'Text')
{
selTxt = document.selection.createRange().htmlText;
}
}
return selTxt;
}
替换选择的功能(这似乎是问题):
function EditBold()
{
var newTxt = '';
btnID = 'btnBold';
GetSelection();
if (selTxt.toLowerCase().indexOf('<strong>') == -1)
{
document.selection.createRange().pasteHTML("<strong>" + selTxt + "</strong>");
}
}
非常感谢您对此提供的任何帮助,蒂姆。