作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个 Chrome 扩展程序,它需要一种方法来获取光标下的单词。我发现的一种常见解决方案是用标签包装 html 中的每个单词。但是,这样做会删除所有以前的 HTML,从而删除所有样式和超链接。我使用了来自 this answer 的以下代码片段递归地为 str 中的每个单词添加 span,但仍然有很多情况会在网页上出现不同格式时失败。
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 标记注入(inject) html 中的每个单词。我的问题是:是否有另一种方法可以找到光标下的单词?或者是否有更好的方法将单词包装在不干扰原始 html 样式和超链接的 span 中?
最佳答案
查看关于此问题的最高投票(而不是接受)答案 - 我认为它可能会引导您朝着工作方向前进:How to get a word under cursor using JavaScript?
关于javascript - 如何在不使用 <span> 标签包装每个单词的情况下获取光标下的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25517896/
我是一名优秀的程序员,十分优秀!