首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >chrome.experimental.processes.onExited.addListener不工作

chrome.experimental.processes.onExited.addListener不工作
EN

Stack Overflow用户
提问于 2013-04-28 11:44:58
回答 1查看 331关注 0票数 2

我正在尝试编写一个Chrome扩展来检测进程崩溃。

首先,我进入了Chrome的about:flags页面,开启了“实验性扩展API”。

这是我写的扩展:

manifest.json

代码语言:javascript
复制
{
  "manifest_version": 2,
  "name": "CrashDetect",
  "description": "Detects crashes in processes.",
  "version": "1.0",
  "permissions": [
    "experimental","tabs"
  ],
  "background": {
    "scripts": ["background.js"]
  }
}

backround.js

代码语言:javascript
复制
chrome.experimental.processes.onExited.addListener(function(integer processId, integer  exitType, integerexitCode) {
  chrome.tabs.getCurrent(function(Tab tab) {
    chrome.tabs.update(tab.id, {url:"http:\\127.0.0.1\""});
  };)
});

然后我访问了Chrome的about://crash页面。但onExited侦听器不执行。我在manifest.jsonbackground.js中做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-28 11:54:08

您的代码中有几个错误。首先,在函数声明中具有参数类型,将其更改为:

代码语言:javascript
复制
function(processId, exitType, integerexitCode){

其次,您将});放入};)。尝试使用inspecting the background page查看语法错误。

好吧,由于我不熟悉这个特殊的API,在尝试了一些之后,我发现如果我没有包含一个onUpdated的处理程序,那么所有的事件都不会触发。我真的很怀疑这是否是预期的行为,我会检查是否有关于它的bug报告。现在,只需这样做就可以让它正常工作:

代码语言:javascript
复制
chrome.experimental.processes.onUpdated.addListener(function(process){});

chrome.experimental.processes.onExited.addListener(function(processId, exitType, integerexitCode){
    chrome.tabs.query({active:true, currentWindow:true},function(tabs){
      chrome.tabs.update(tabs[0].id, {url:"http:\\127.0.0.1"});
    });
});

请注意,我确实用chrome.tabs.query替换了您的getCurrent,因为前者会给您一个错误。这确实会导致这样的行为:如果您关闭一个选项卡,则下一个选项卡将被重定向。也许您可以尝试按exitType进行过滤,而不包括正常的出口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16259383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档