是否可以突出显示文本并使用javaScript检查html?

时间:2012-05-24 13:18:53

标签: javascript google-chrome-extension

是否可以突出显示网页上的文字,然后使用javaScript检查html? (假设javascript将HTML吐入另一个DIV)

我正在构建chrome的扩展程序,我希望用户能够突出显示文本,我希望扩展程序能够做两件事:复制该文本(在textarea / input或span / div中) / any-element或检查span / div / any-element中所选文本的HTML。

这一切都假设chrome具有编辑和编辑的能力。检查DOM。我相信这是因为我在GC的扩展管理器中收到的这个警告 enter image description here 这告诉我扩展有一些访问权限。至少到页面地址。有更多的访问权限吗?

2 个答案:

答案 0 :(得分:0)

注意:以下内容不适用于IE< 9.有关跨浏览器的解决方案,请参阅HTML of selected text

function getSelectionText() {
    var text = "";
    if (typeof window.getSelection != "undefined") {
        text = window.getSelection().toString();
    }
    return text;
}

function getSelectionHtml() {
    var html = "";
    if (typeof window.getSelection != "undefined") {
        var sel = window.getSelection();
        if (sel.rangeCount) {
            var container = document.createElement("div");
            container.appendChild(sel.getRangeAt(0).cloneContents());
            html = container.innerHTML;
        }
    }
    return html;
}

答案 1 :(得分:0)

首先,不要介意Chrome为隐身模式提供的警告。只是为了警告人们,当在隐身模式下启用扩展时,用户可能不会100%安全地记录他的浏览行为(某些恶意扩展可能会收集,例如银行访问数据)。

如果您想捕获用户在某个textarea / input字段中选择的文本,您需要先阅读并在您的扩展程序中实现content script。然后Chrome会将这样的脚本注入您选择的网站。从那里它可以操纵DOM并监听事件(就像常规脚本嵌入到网站中一样)。

有关获取所选文本的详细信息,请参阅Tims回答您的问题或只是搜索stackoverflow - 之前已多次询问此问题。