gpt4 book ai didi

javascript - 关闭 Chrome 时触发 chrome.windows.onFocusChanged.addListener,导致插件崩溃

转载 作者:行者123 更新时间:2023-12-02 18:25:43 27 4
gpt4 key购买 nike

我正在编写一个 chrome 扩展,它使用 chrome.windows.onFocusChanged.addListener 来执行内容脚本。只要我在不同的 Chrome 窗口之间切换,这种方法就可以正常工作,但是,当 Chrome 关闭时,监听器也会被触发。在这种情况下,函数内的代码会导致扩展崩溃。

我尝试检查未定义,但这似乎不是问题。

代码看起来像这样

chrome.windows.onFocusChanged.addListener(function() 
{
var ctab = chrome.tabs.getCurrent;
if(typeof ctab === "undefined")
{

}
else
{
chrome.tabs.executeScript(ctab.id,{file:"inject.js"}); //THIS LINE CRASHES THE APP WHEN I CLOSE THE BROWSER
}
});

我对计划警报也有类似的问题,它也会执行脚本(当我在计划和执行之间关闭浏览器时,这会导致崩溃)。

function onAlarm(alarm) 
{
if (alarm && alarm.name == 'check')
{

var ctab = chrome.tabs.getCurrent;
chrome.tabs.executeScript(ctab.id,{file:"inject.js"}); //CRASH
//more code...

有人知道如何避免这种崩溃吗?

编辑:工作示例

list .json

{
"name": "Rest Extension",
"description": "Set an Artnet Controler to the background collor",
"manifest_version": 2,
"version": "1",
"permissions": ["tabs", "http://*/*", "https://*/*", "background", "alarms"],
"background": {"scripts": ["background.js"]},
"content_scripts": [{"matches": ["http://*/*", "https://*/*"],"js": ["inject.js"]}],
"browser_action":
{
"default_icon": "16x16.png",
"default_popup": "popup.html"
}
}

背景.js

chrome.windows.onFocusChanged.addListener(function() 
{
var ctab = chrome.tabs.getCurrent;
if(typeof ctab === "undefined")
{

}
else
{
chrome.tabs.executeScript(ctab.id,{file:"inject.js"}); //THIS LINE CRASHES THE APP WHEN I CLOSE THE BROWSER
}
})

所有其他文件可以为空(包括inject.js)

最佳答案

chrome.tabs.getCurrent 是一种方法:它不是 Tab 对象的实例。你应该尝试这个:

chrome.windows.onFocusChanged.addListener(function() 
{
chrome.tabs.getCurrent(function(ctab)
{
chrome.tabs.executeScript(ctab.id, { file: "inject.js" });
});
});

引用:http://developer.chrome.com/extensions/tabs.html#method-getCurrent

关于javascript - 关闭 Chrome 时触发 chrome.windows.onFocusChanged.addListener,导致插件崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18401802/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com