问题描述
我目前正在尝试创建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 (将#修改为@)