[英]Javascript window.getSelection() alternative
我正在尝试手动选择文本。 window.getSelection().getRangeAt(0);
用于窗口选定文本的行。 但是我希望这个由我预先选择。
foo=function()
{
var selection= "Lorem ipsum dolor"; // Instead of this line window.getSelection().getRangeAt(0);
var selectedText = selection.extractContents();
var span= document.createElement("span");
span.style.backgroundColor = "yellow";
span.appendChild(selectedText);
selection.insertNode(span);
}
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<input type="button" onclick="foo();" value="FOO"/>
有一个github项目findAndReplaceDOMText 。 一个可能有用的javascript库:它在给定的DOM节点中搜索正则表达式匹配项,并用您可以指定的节点或一段文本替换或包装每个匹配项。
您也可以使用window.find()
/ createTextRange
。 此答案显示了如何执行此操作。 它将匹配跨越元素边界的文本,并使用document.execCommand()
为您突出显示。
最后,如果我看一下您的示例,而您只想替换文本节点的特定片段,则可以使用如下正则表达式:
element.innerHTML = element.innerHTML.replace(
/Lorem ipsum dolor/gi,
'<span class="f">$0</span>'
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.