JavaScript:如何适应Firefox和/或Chrome的工作功能(IE)

时间:2013-11-14 17:17:26

标签: javascript html google-chrome firefox getselection

我正在使用以下函数在一个可信的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>");
    }
}

非常感谢你提供任何帮助,蒂姆。

1 个答案:

答案 0 :(得分:1)

您在selTxt函数中使用变量EditBold(),但未在函数内声明它。如果该值应该是GetSelection()返回的值,请使用以下命令:

var selTxt = GetSelection();