微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在窗口中获取突出显示的文本?

如何解决在窗口中获取突出显示的文本?

我目前正在尝试创建Chrome扩展程序,但是在popup.js中获取所选文本时遇到了一些麻烦。我想做的是在当前网页上获取所有选定的文本,然后调用一个函数并为其提供要使用的文本。

我已经尝试过了:

chrome.tabs.executeScript({
    code: "var selection = window.getSelection().toString(); alert(selection);"
});

这使我能够获取所选文本并将其显示在警报中,但是如果我尝试调用从此处创建的函数checkSelection(),它将无法正常工作。

我也尝试过:

function checkSelection() {
    selection = window.getSelection().toString();
    alert("Called: " + selection);
}

但是在打印警报时,它不会显示输出添加selection,而只会显示Called: ,而没有其他内容

这是我到目前为止的完整代码

window.addEventListener("load",() => {
    
    checkSelection();
    
    //Extension Options button
    document.querySelector("#optionsButton").addEventListener("click",e => {
        chrome.tabs.create({ url: "options.html" });
    });
    
    //Check button
    document.querySelector("#checkButton").addEventListener("click",e => {
        //Do something
        checkText(document.querySelector("#inputBox").value);
    });
    
    //Check this page button
    document.querySelector("#checkThisPageButton").addEventListener("click",e => {
        //Do something
        checkPage();
    });
});

function checkSelection() {
    selection = window.getSelection().toString();
    alert("Called: " + selection);
}

function checkText(text) {
    alert("function called,parameter: " + text);
}

function checkPage() {
    alert("Check this page");
}

在顶部,checkSelection()确实被调用了,并且工作正常,但是如前所述,它实际上不能正常工作。其他所有内容均按预期工作,只是与所选文本有关的内容

非常感谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。