我有一个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>
标记已包含新行。
答案 0 :(得分:1)
根据OP的评论,如果您想要返回没有换行符的HTML,您可以使用正则表达式全局替换Carriage Return
(\n
)和Line Feed
({{ 1}})空字符串的字符:
\r
这将删除所有换行符,请注意如果您选择文档的很长一部分,HTML将失去可读性。