0

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

我正在为 chrome 构建一个扩展,我希望用户能够突出显示文本,并且我希望扩展能够做两件事:复制该文本(在 textarea/input 或 span/div/any-元素或检查 span/div/any-element 中选定文本的 HTML。

这一切都是假设 chrome 有能力编辑和检查 DOM。我相信是这种情况,因为我在 GC 的扩展管理器中收到了这个警告, 在此处输入图像描述 这告诉我扩展有一些访问权限。至少到页面地址。有更多的访问权限吗?

4

2 回答 2

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;
}
于 2012-05-24T14:39:58.330 回答
0

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

如果您想捕捉用户在某些文本区域/输入字段中选择的文本,您需要从阅读和实现扩展中的内容脚本开始。然后,Chrome 会将此类脚本注入您选择的网站。从那里它可以操作 DOM 并监听事件(就像嵌入网站的常规脚本一样)。

有关获取选定文本的详细信息,请参阅 Tims 对您的问题的回答或简单地搜索 stackoverflow - 这个问题之前被问过多次。

于 2012-05-24T20:01:47.630 回答