繁体   English   中英

Javascript window.getSelection()替代

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM