我有一个名为file.js的脚本,它创建了变量“found”。我想将varibale“found”的值发送到popup.html
中的文本框在file.js中(我知道找到的varible正在工作,使用警报进行测试)。
chrome.extension.sendRequest({foundlinks: found}, function(response) {
console.log(response);
});
在Popup.html中:
function pulllinks(){
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
document.getElementById("box").value = request.foundlinks;
sendResponse({});
});
在popup.html中的表单上:
<input type = "button" onclick="pulllinks();" name = "box" id="box" value = "Grab Links From Page" />
然而,它没有做任何事情。有任何想法吗?
谢谢!
答案 0 :(得分:1)
首先,onRequest
的听众应该从一开始就存在,所以将其移到pulllinks
函数之外。其次,如何在弹出窗口打开时确保你的sendRequest
被解雇?
答案 1 :(得分:1)
您需要以相反的方向发送请求 - 从弹出窗口到内容脚本:
<强> popup.html:强>
function pulllinks(){
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {cmd: "findLinks"}, function(response) {
document.getElementById("box").value = response.foundlinks;
});
});
}
<强> file.js:强>
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if(request.cmd == "findLinks") {
//calculate "found" value and send it back
sendResponse({foundlinks: found});
}
});