无法在IE11上获得所选文本的新行

时间:2014-02-28 11:22:03

标签: javascript jquery replace selection internet-explorer-11

我正在尝试使用带有表单输入的模态窗口替换div中的一些文本,但由于某种原因,我无法让它在IE11上工作。我已经意识到,当选择包含< br>

的文本时,它会跳过新行

这是一个有效的例子:

http://jsfiddle.net/8VdE9/3/

有趣的是,我在不同的页面中使用相同的代码,它使新行很好,这让我觉得我错过了一些东西。

var isIE11 = !!navigator.userAgent.match(/Trident.*rv\:11\./);

range = window.getSelection().getRangeAt(0);
if(!isIE11){
    text = new XMLSerializer().serializeToString(range.cloneContents());
}
else{
    text = range;
}
text = new String(text);
var textBr = nl2br(text.toString());

function nl2br (str, is_xhtml) {
    var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';
    return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');
}

非常感谢任何帮助。

此致

0 个答案:

没有答案