2015-03-08 79 views
3

My code is here on codepenJavaScript范围在Firefox上失去空白?

我想算的人物和包装那些超出我已经为风格红<span>一定的限制。

的代码大多与功能的不同之处在于将插入符移动到最后,在Firefox创建有失去所有的空格,使“ABCD 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(); 
    } 
} 

有没有人遇到过这个,并找到了解决方案?

回答

2

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

inputText.substring(0,maxCharacter)

你应该做

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

同样代替代码

inputText.substring(maxCharacter)

你应该做

inputText.substring(maxCharacter).replace(/ /g, '&nbsp;')

这将解决它。希望它能在所有其他浏览器上运行。

更换笔:http://codepen.io/anon/pen/GgXBjp