我正在编写一个脚本,需要复制代表用户选择文本的实际原始HTML。我不需要有效的HTML(带有平衡标签等),我需要来自选择所包装的源文档中的逐字符字符串。
例如,如果HTML如下:
<p>one two three <strong>four
five</strong> six seven</p>
...并且用户在第一个&#39;#开始选择。 (在单词&#39; one&#39;之后的空格之后)并在第一个&#39; v&#39;之后结束选择。 (在&#39; five&#39;中),我需要将以下完全字符串捕获到剪贴板:
two three <strong>four\nfiv
请注意,捕获的文本需要具有开头string
标记,但不是匹配的结束标记,并且需要在单词“四”之后包含源文档中存在的换行符。 (即使这不会出现在呈现的HTML中)。
到目前为止,我发现的所有帮助都试图规范化所选的HTML,但这并不适用于我需要的内容。
这可能被捕获吗?如果是这样,我该怎么做呢?提前感谢任何建议或帮助!
答案 0 :(得分:0)
您可以尝试以下javascript函数: -
<script type="text/javascript">
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 '';
}
}
</script>