首页 > web前端 > js教程 > 如何仅使用浏览器本机对象从网站获取突出显示的文本?

如何仅使用浏览器本机对象从网站获取突出显示的文本?

Susan Sarandon
发布: 2024-12-15 20:05:18
原创
945 人浏览过

How Can I Get Highlighted Text from a Website Using Only Browser-Native Objects?

获取突出显示的文本

从网站的段落中检索突出显示的文本是一项简单的任务,无需额外的库(如 jQuery)即可完成。

使用浏览器原生对象

以下代码片段演示了如何使用浏览器本机对象检索突出显示的文本:

function getSelectionText() {
    let text = "";

    if (window.getSelection) {
        text = window.getSelection().toString();
    } else if (document.selection && document.selection.type != "Control") {
        text = document.selection.createRange().text;
    }

    return text;
}
登录后复制

增强实现

为了处理其他表单元素(例如文本区域和文本输入字段)中的文本选择,可以使用增强的实现使用:

function getSelectionText() {
    let text = "";
    const activeElement = document.activeElement;

    if (
        (activeElement.tagName.toLowerCase() === "textarea") ||
        (activeElement.tagName.toLowerCase() === "input" && /^(?:text|search|password|tel|url)$/i.test(activeElement.type)) &&
        (typeof activeElement.selectionStart === "number")
    ) {
        text = activeElement.value.slice(activeElement.selectionStart, activeElement.selectionEnd);
    } else if (window.getSelection) {
        text = window.getSelection().toString();
    }

    return text;
}
登录后复制

实时更新

要实时显示所选文本,可以在 onmouseup、onkeyup 等文档事件中添加事件监听器onselectionchange.然后可以将更新后的文本填充到指定元素中,例如文本框。

以上是如何仅使用浏览器本机对象从网站获取突出显示的文本?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板