【问题标题】:How to get a word under a cursor without wrapping every word with <span> tag?如何在光标下获取一个单词而不用 <span> 标签包装每个单词?
【发布时间】:2014-08-27 11:02:19
【问题描述】:

我目前正在开发一个 Chrome 扩展程序,它需要一种获取光标下单词的方法。我发现的一个常见解决方案是用标签包装 html 中的每个单词。但是,这样做会删除任何以前的 HTML,从而删除所有样式和超链接。我使用this answer中的以下代码sn-p递归地将span添加到str中的每个单词,但是当网页上出现不同的格式时仍然有很多情况它失败。

var regex = /(\(*<.+?<\/.+?>|\S+)/g;
var spannedStr = str.replace(regex, function(a) {
    var m = (/<(\w+)([^>]*)>([^<]*)<\/\w+>/).exec(a);
    if (m !== null) {
        return "<" + m[1] + m[2] + ">" + m[3].replace(regex, arguments.callee) + "</" + m[1] + ">";
    }
    return "<span class = \"toTranslate\">" + a + "</span>";
});

我查看了其他一些 Chrome 扩展,其中一个似乎能够检索光标下的单词,而无需将 span 标签注入 html 中的每个单词。我的问题是:还有另一种方法可以找到光标下的单词吗?或者有没有更好的方法将单词包装在不干扰原始 html 样式和超链接的 span 中?

【问题讨论】:

    标签: javascript jquery html google-chrome-extension


    【解决方案1】:

    查看这个问题上投票最多(而不是接受)的答案 - 我认为它可能会引导您朝着工作方向前进:How to get a word under cursor using JavaScript?

    【讨论】:

    • 谢谢!我以前读过那个问题,但我错过了那个答案。
    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多