Javascript window.getSelection() alternative

Javascript window.getSelection() alternative

本文关键字:alternative getSelection window Javascript      更新时间:2023-09-26

我正在尝试手动选择文本。 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 project findAndReplaceDOMText。一个可能有用的JavaScript库:它在给定的DOM节点中搜索正则表达式匹配项,并将每个匹配项替换为您可以指定的节点或文本段。

您也可以使用 window.find()/createTextRange .这个答案显示了如何做到这一点。它将匹配跨越元素边界的文本,并使用document.execCommand()为您突出显示。

最后 - 如果我看你的例子,你只想替换文本节点的特定片段 - 你可以使用这样的正则表达式:

element.innerHTML = element.innerHTML.replace(
    /Lorem ipsum dolor/gi,
    '<span class="f">$0</span>'
);