chrome.runtime.onMessage.addListener在内容脚本中不起作用
chrome.runtime.onMessage.addListener doesn't work in content script
在chrome扩展中,我尝试从后台脚本到内容脚本发送消息。我不会在内容脚本中收到消息。我哪里出错了?这是background.js
function createAlarm() {
chrome.alarms.create('bookcab', {
periodInMinutes: 1
});
}
chrome.alarms.onAlarm.addListener(function(alarm) {
if (alarm.name === 'bookcab') {
var url = 'http://cab/';
chrome.tabs.create({ url:url, active: true });
chrome.tabs.query({active:true}, function(tabs){
chrome.tabs.sendMessage(tabs[0].id, {"message": "sample_msg"});
});
}
});
createAlarm();
content_script.js有以下代码
chrome.runtime.onMessage.addListener(
function(request,sender,sendresponse) {
if( request.message === "sample_msg" ) {
console.log('message from content script');
}
}
);
这是舱单。Json格式
{
"manifest_version": 2,
"name":"bookcab",
"version":"0.1",
"background": {
"scripts":["background.js"]
},
"permissions": [
"alarms",
"tabs"
],
"content_scripts": [{
"matches":["<all_urls>"],
"js": ["content_script.js"],
"run_at" : "document_end"
}]
}
我在向内容脚本发送消息之前包含了一个选项卡加载完成。
等待选项卡完全加载
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete') {
chrome.tabs.query({active: true}, function(tabs){
chrome.tabs.sendMessage(tabs[0].id, {"message": "sample_msg"});
}
}
});
相关文章:
- 当有许多形式时,Fancybox脚本不起作用
- Aureliaview中的脚本不起作用
- 淡入淡出脚本不起作用
- 从jquery对话框恢复原始数据,脚本不起作用
- 我的脚本不起作用
- 用于wooccommerce的简单JQuery脚本不起作用
- 简单的拖放JS脚本不起作用
- jquery和JavaScript脚本不起作用
- jquery脚本不起作用
- 为什么这个jquery脚本不起作用
- 带有ajax xml请求的Node js脚本不起作用
- 示例Casper JS脚本不起作用
- 多个脚本不起作用
- JavaScript/jQuery-脚本不起作用-添加&删除类,合并数组-测试用例
- 在php中验证字段时,java脚本不起作用
- 只有在条件满足时才加载javascript脚本-不起作用
- 使用另一个 ajax 脚本更改页面内容后,AJAX 脚本不起作用
- 网络视图的电子预加载脚本不起作用
- 用于显示服务器上的 javascript 时间的脚本不起作用
- “BBCODE”脚本不起作用