我正在使用以下函数在一个可信的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>");
}
}
非常感谢你提供任何帮助,蒂姆。
答案 0 :(得分:1)
您在selTxt
函数中使用变量EditBold()
,但未在函数内声明它。如果该值应该是GetSelection()返回的值,请使用以下命令:
var selTxt = GetSelection();