javascript - 获取特定 div 中所选内容的 HTML

标签 javascript jquery

我找到了一个代码片段(不记得在哪里),它工作正常 - 几乎:-)

问题是,无论在整个网站的哪个位置进行选择,它都会复制选择,并且只有在特定 div 中的情况下才必须复制选择 - 但这是如何完成的?

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 '';
    }
}

$(document).ready(function() {
    $("#test").click(function() {
        var kopitekst = document.getElementById("replytekst");
        var kopitjek=getHTMLOfSelection(kopitekst);
        if (kopitjek=='')
        {
            alert("Please select some content");
        }
        else
        {
            alert(kopitjek);
        }
    });
});   

我做了一个Jsfiddle

这是我在这里发表的第一篇文章。希望我做对了:-)

最佳答案

这是因为它检查整个文档:

if (document.selection && document.selection.createRange) {
    range = document.selection.createRange();
    return range.htmlText;
}

不是特定部分。如果您想检查所选文本的特定部分,则需要确定您正在搜索选择中搜索它们,这会将您的范围锁定到特定的 div:

范围= $('#replytekst');

关于javascript - 获取特定 div 中所选内容的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20427556/

相关文章:

jquery - $(window).click 在 IE 中不起作用

javascript - 我们需要什么来授权 Google 应用脚本? (因为脚本甚至需要授权才能使用)

JavaScript 隐藏 HTML 表单的提交按钮,直到从另一个输入提交

javascript - 使用HTML5原生拖放时如何限制移动?

jquery - 有效 css 和/或 jQuery 选择器的正则表达式

jquery - 如何知道DIV中的所有元素是否已完全加载?

javascript - 如何创建一个每次单击按钮时逐渐减少 2 行不透明度的函数

javascript - 有没有一种方法可以在不破坏 IE 下代码的情况下登录到控制台?

javascript - 如何从外部链接打开 Bootstrap 3 选项卡?

javascript - jQuery 动画 : How to avoid elements being displaced?