【问题标题】:window.getSelection return html [duplicate]window.getSelection 返回 html [重复]
【发布时间】:2011-07-10 12:25:59
【问题描述】:
function selected() {
   var selObj = window.getSelection();
}


此函数从网页返回选定的文本。如何返回选定区域的 html。这可能与<img><a> 标签有关吗?


以下是函数列表:
https://developer.mozilla.org/Special:Tags?tag=DOM&language=en

【问题讨论】:

标签: javascript jquery html dom execcommand


【解决方案1】:

以下内容将在所有主流浏览器中执行此操作,并且与 this answer 完全相同:

function getSelectionHtml() {
    var html = "";
    if (typeof window.getSelection != "undefined") {
        var sel = window.getSelection();
        if (sel.rangeCount) {
            var container = document.createElement("div");
            for (var i = 0, len = sel.rangeCount; i < len; ++i) {
                container.appendChild(sel.getRangeAt(i).cloneContents());
            }
            html = container.innerHTML;
        }
    } else if (typeof document.selection != "undefined") {
        if (document.selection.type == "Text") {
            html = document.selection.createRange().htmlText;
        }
    }
    return html;
}

【讨论】:

  • 太棒了,非常感谢!!!
  • Identical with Tim's answer 这个问题是重复的。
  • @DanDascalescu:您是否因为它重复了我对另一个问题的回答而投了反对票?
  • @TimDown:是的。我浪费了一点时间将这个答案与另一个答案进行比较,看看你是否在其中一个方面做出了改进。由于这个问题是一个封闭的骗局,如果这是我的答案,我会编辑它以链接到另一个问题中的答案,以节省用户一些时间。 (我的工作流程是搜索一些东西,然后在不同的选项卡中打开前几个最有希望的结果,然后比较解决方案。)
  • @DanDascalescu:好的,很公平。几年前我对 SO 有很多重复的答案,那时我在积累声誉方面比现在更加无情,所以我会在看到它们时修复它们。
猜你喜欢
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
  • 2018-08-13
  • 2018-01-29
  • 2016-12-22
  • 1970-01-01
  • 1970-01-01
  • 2014-09-04
相关资源
最近更新 更多