我想首先了解什么是内容脚本以及扩展开发中的后台页面是什么。
内容脚本是网站内容中的脚本吗?后台页面是扩展html页面?
我问这个是因为我想以这种方式将所选文本发送到网络服务:
我有两个问题:
1)如何让所选文字显示在菜单中而不是''
,window.getSelection().toString()
什么也没有显示
2)如何将此文本发送到django后端。
这是我的尝试:
function onClickHandler(info, tab) {
var selectedtext = info['selectionText'];
//how to send this text to django backend?
};
chrome.contextMenus.onClicked.addListener(onClickHandler);
chrome.runtime.onInstalled.addListener(function() {
var contexts = ["selection"];
for (var i = 0; i < contexts.length; i++){
var context = contexts[i];
var title = "Send the word '" + window.getSelection().toString() + "' to django backend";
var id = chrome.contextMenus.create({"title": title, "contexts":[context],"id": "context1" + context});
}
});
答案 0 :(得分:1)
内容脚本只是您在访问的网页上运行的一些JavaScript。 (您可以指定在清单中运行它的站点)
通过背景页面,您可以使分机保持活跃状态,并在分机的不同部分之间进行互动。
您需要捕获内容脚本中的选定文本,然后将其从内容脚本发送到后台页面。您正在尝试从后台页面执行window.getSelection().toString()
,这是一个在后台运行的进程!当然它没有选定的文字。
我强烈建议您阅读Xan链接的所有内容。我希望我已经有了一些基本的理解来开始......