我在函数外部定义了一个对象,在全局范围内.此对象不作为参数传递给函数,但函数会修改它并返回修改后的对象.
我想知道的是,如果函数返回对象的副本,或原始的全局对象?
另外,将该对象作为参数传递给函数会产生影响,因为对象是通过引用传递给函数的吗?
我最近收到有关我开发的 chrome 扩展程序的报告,该扩展程序在更新或全新安装后停止工作。后台脚本似乎根本没有启动。
一旦出现此问题,即使在重新加载或卸载/重新安装扩展程序后,chrome 配置文件也仍然存在。
重新启动 chrome 可以解决问题。
该问题已在 chrome v79 上看到。但我不能肯定地说它是这个版本独有的,因为这个问题很难重现,而且似乎是随机的。
有没有人看到过这样的问题,或者有任何想法要寻找什么?我很高兴用我拥有的任何新信息或您需要的任何信息更新我的问题。
编辑:
这是我的webNavigation
监听器,用于注入内容脚本。这个处理程序连接在后台脚本的“根”上下文中(不是在事件处理程序中异步)
chrome.webNavigation.onCompleted.addListener((details) ? {
if(details.frameId === 0) {
injectScript(
'js/contentScript.js',
details.tabId,
details.frameId,
details.url
).catch((e) ? {});
}
}
Run Code Online (Sandbox Code Playgroud)
该injectScript
功能如下
export const injectScript = ƒ (scriptPath,tab,frame,tabUrl) {
return new Promise((res,rej) ? {
let options = {
file : scriptPath,
allFrames : false,
frameId : frame,
matchAboutBlank: false,
runAt : 'document_idle',
};
const cb = ƒ () { …
Run Code Online (Sandbox Code Playgroud)