Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在窗口中获取高亮显示的文本?_Javascript_Function_Google Chrome Extension_Parameters_Selection - Fatal编程技术网

Javascript 在窗口中获取高亮显示的文本?

Javascript 在窗口中获取高亮显示的文本?,javascript,function,google-chrome-extension,parameters,selection,Javascript,Function,Google Chrome Extension,Parameters,Selection,我目前正在尝试创建一个Chrome扩展,在popup.js中获取所选文本时遇到了一些问题。我想做的是获取当前网页上的任何选定文本,然后调用函数并将该文本提供给它使用 我试过这个: chrome.tabs.executeScript({ code: "var selection = window.getSelection().toString(); alert(selection);" }); function checkSelection() { selec

我目前正在尝试创建一个Chrome扩展,在popup.js中获取所选文本时遇到了一些问题。我想做的是获取当前网页上的任何选定文本,然后调用函数并将该文本提供给它使用

我试过这个:

chrome.tabs.executeScript({
    code: "var selection = window.getSelection().toString(); alert(selection);"
});
function checkSelection() {
    selection = window.getSelection().toString();
    alert("Called: " + selection);
}
这允许我获取所选文本并将其显示在警报中,但如果我尝试调用在此创建的函数
checkSelection()
,它将不起作用

我也试过:

chrome.tabs.executeScript({
    code: "var selection = window.getSelection().toString(); alert(selection);"
});
function checkSelection() {
    selection = window.getSelection().toString();
    alert("Called: " + selection);
}
但打印警报时,它不会向输出显示添加
选择
,只会显示
调用:
,而不会显示其他内容

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

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()
似乎确实被调用了,这很好,但正如前面所解释的,它实际上不能正常工作。其他的一切都按照它应该的那样工作,它只是与所选文本相关的东西

非常感谢