HTML格式的选定文本返回范围选择中的空格

时间:2012-06-10 07:04:46

标签: javascript

我有一个Javascript例程,它由格式化为HTML的用户检索选择文本:

function getHTMLOfSelection() {
    var range;
    if (document.selection && document.selection.createRange) {
        range = document.selection.createRange();
        return range.htmlText;
    }
    else if (window.getSelection) {
        var selection = window.getSelection();
        if (selection.rangeCount > 0) {
            range = selection.getRangeAt(0);
            var clonedSelection = range.cloneContents();
            var div = document.createElement('div');
            div.appendChild(clonedSelection);
            return div.innerHTML;
        }
        else {
            return '';
        }
    }
    else {
        return '';
    }
}

使用小提琴,确保并首先选择引用的文字:

http://jsfiddle.net/userdude/Y4BBq/13/

代码工作正常,但是,每\r\n</p>后选择包括<br/>。 为什么这些被添加,在什么时候?这似乎是多余的,因为<p><br>标记已包含新行。

1 个答案:

答案 0 :(得分:1)

根据OP的评论,如果您想要返回没有换行符的HTML,您可以使用正则表达式全局替换Carriage Return\n)和Line Feed({{ 1}})空字符串的字符:

\r

这将删除所有换行符,请注意如果您选择文档的很长一部分,HTML将失去可读性。

JSFiddle