Javascript范围在Firefox上丢失空白?

Javascript范围在Firefox上丢失空白?,javascript,jquery,css,range,Javascript,Jquery,Css,Range,我正在尝试计数字符,并将超过某个限制的字符包装在一个我已设置为红色的中 除了将插入符号移到末尾的函数外,该代码大部分都能正常工作。在Firefox上,我在那里创建的区域会丢失所有的空白,因此“abcd”变成“abcdabcd” 以下是该函数的代码: function placeCaretAtEnd(el) { el.focus(); if (typeof window.getSelection != "undefined" && typeof do

我正在尝试计数字符,并将超过某个限制的字符包装在一个我已设置为红色的

除了将插入符号移到末尾的函数外,该代码大部分都能正常工作。在Firefox上,我在那里创建的区域会丢失所有的空白,因此“abcd”变成“abcdabcd”

以下是该函数的代码:

function placeCaretAtEnd(el) {
    el.focus();
    if (typeof window.getSelection != "undefined"
        && typeof document.createRange != "undefined") {
        // Modern browsers
        var range = document.createRange();
        range.selectNodeContents(el);
        range.collapse(false);
        var sel = window.getSelection();
        sel.removeAllRanges();
        sel.addRange(range);
    } else if (typeof document.body.createTextRange != "undefined") {
        // IE
        var textRange = document.body.createTextRange();
        textRange.moveToElementText(el);
        textRange.collapse(false);
        textRange.select();
    }
}

以前有人遇到过这个问题并找到了解决方案吗?

Firefox忽略了HTML中的空格。您必须修改它以用html转义字符替换空格字符。取代守则

inputText.substring(0,maxCharacter)

你应该这样做

inputText.substring(0,maxCharacter).replace(//g',)

类似地代替代码

inputText.substring(maxCharacter)

你应该这样做

inputText.substring(maxCharacter).replace(//g',)

那会解决的。希望它也能在所有其他浏览器中工作

换笔: