我正在使用Google Chrome扩展程序。我的popup.js中有一个函数,用于填充表 update_table 。我想从发送重要数据的background.js中调用该函数。问题是background.js上的update_table没有定义,如果我将代码复制到该文件中,请不要更新popup.html上的表。
popup.js
function update_table(content, morecontent){
if (!document.getElementsByTagName) return;
tabBody=document.getElementsByTagName("tbody").item(0);
row=document.createElement("tr");
cell1 = document.createElement("td");
cell2 = document.createElement("td");
textnode1=document.createTextNode(content);
textnode2=document.createTextNode(morecontent);
<!-- ... -->
}
popup.html
<!doctype html>
<html>
<head>
<title>Popup Page</title>
<script src="./popup.js" type="text/javascript"></script>
</head>
<body>
<table border='1' id='mytable'>
<tbody>
<tr><td>22</td><td>333</td></tr>
<tr><td>22</td><td>333</td></tr>
</tbody>
</table>
</body>
</html>
background.js
chrome.webRequest.onCompleted.addListener(
function(request) {
update_table(request.type, request.url);
},
{urls: ["*://*/*"]},
["responseHeaders"]
);
background.html
<!doctype html>
<html>
<head>
<title>Background Page</title>
<script src="./background.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
答案 0 :(得分:0)
阅读this post,我只是为另一个人回答这个问题。
最好看看chrome.extension.* API。 我将在明天的某个时间在GitHub上发布一个例子,我可以告诉你。
希望这有帮助。
<强>更新强>
Here you go.这是我创建的套接字脚本,允许后台页面和弹出窗口之间的连续通信。 README中提供了一个示例。我目前使用这个扩展,每个实例最多传递100个项目,它完美无缺。 :P