处理一些javascript代码;我想在突出显示时更改文本。我目前最接近的是:Get The Highlighted Selected Text。该解决方案的问题是它只是将文本突出显示为字符串,但它是一个字符串。所以我有文本,但我不能像节点一样编辑它,做innerHTML,改变字体等等。它只是一个字符串。我有一个“有效”的解决方案,但是,正在使用该字符串,然后搜索它。问题是,如果我在这篇文章中突出显示字符串“the”,我会得到一大堆答案,无法区分它们。
有没有办法将选定的文字作为节点?
答案 0 :(得分:1)
您需要查找选择(window.getSelection();
)并获取其范围以获得所选文本的正确位置。然后,您可以通过span-wrapping应用样式。
看看
答案 1 :(得分:0)
您可以从这个答案https://stackoverflow.com/a/3997896/5267669
了解其完成情况基本上,您使用document.getSelection
方法获取所选文本,然后将其删除,并在其位置插入您自己的内容。
例如,将您的选择替换为包含文本Added with js
sel = window.getSelection();
if (sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
var h1 = document.createElement("h1");
h1.textContent = 'Added with js';
range.insertNode(h1);
}
您可以在此页面上选择任何内容,将此代码粘贴到控制台,选择内容将替换为h1标记