2015-03-08 78 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