我坚持使用Google Chrome扩展程序传递消息。
我有这个popup.js:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.do == 'popup_refreshMessage')
jQuery('#message').html(request.message);
}
);
jQuery('input[type=button]').click(function(){
chrome.runtime.sendMessage({
do: "background_start"
});
});
和这个popup.html:
<html>
<body>
Message:
<div id="message"></div>
<input type="button" value="Start">
</body>
</html>
现在,我希望后台页面能够在弹出窗口中定期刷新消息。所以,background.js看起来像这样:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.do == 'background_start') {
var periodicFunc = function() {
request.callback({
do: "popup_refreshMessage",
message: Math.random()
});
setTimeout(myFunc, 1000);
}
periodicFunc();
}
});
但是当我点击按钮时,没有任何事情发生,并且“Uncaught TypeError:无法调用方法'addListener'的未定义”出现在控制台中。
如何在弹出窗口中编写后台页面以定期更新HTML?谢谢。