2012-03-03 78 views
0

我正在使用Google Chrome扩展程序。我在我的popup.js中有一个函数,它填充表update_table。我想从发送重要数据的background.js中调用该函数。问题是background.js上的update_table未定义,如果我将代码复制到该文件中,则不更新popup.html上的表。从背景调用弹出功能。 (Google Chrome扩展程序)

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> 
+1

[如何与弹出窗口中的background.js进行交互?](http://stackoverflow.com/questions/9537435/how-to-interact-with-background-js-from-the-弹出) – 2012-03-03 21:48:42

+0

3种方式:chrome.extension。(getViews,sendRequest或Port) – hamczu 2012-03-03 22:33:50

回答

0

this post,我只是回答了另一个人。

你最好打赌看看chrome.extension.* API。 我将在明天的某个时间在GitHub上发布一个示例,以便向您展示。

希望这会有所帮助。

UPDATE

Here you go.这是一个套接字剧本我创建允许后台页面和弹出窗口之间连续通信。自述文件中提供了一个示例。我目前使用这个扩展,每个实例最多可以传递100个项目,并且它非常完美。 :P

相关问题