我无法弄清楚为什么我的代码在开发环境中工作,当我发布代码时,它不起作用,并使我的chrome扩展崩溃,并且一条消息说我的扩展已损坏。
由于Chrome(73.0.3683.75)的最新更新,我们无法在内容中进行跨站点调用。
我从content.js调用我的背景中的方法。
content.js
chrome.runtime.sendMessage(extensionID, { method: "CustomUpload",function(){
});
在我的背景中,我接到了电话并打开弹出窗口。
case "CustomUpload":
var w = window.open("/upload.html", "name", 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=350,height=250', false);
w.focus();
w.addEventListener("load", function () {
w.InitializeFileHelper();
}, true);
我不知道为什么,但这是在dev中的工作,而不是prod。我在哪里想念什么?
如果我激活了开发器模式,我将获得"扩展名",然后加载扩展名打开所有工作正常的包装。Chrome有一个错误?
%userprofile%AppDataLocalGoogleChromeUser DataDefault
我进行了很多测试,并且总是同样的问题。
我尝试
chrome.windows.create({ url: chrome.extension.getURL("upload.html")})
chrome.tabs.create({ url: chrome.extension.getURL("upload.html") });
window.open(chrome.extension.getURL("/upload.html"));
始终相同的结果,"本地"工作正常,但是当发布时停止工作并获得消息扩展时可能会损坏。
我看到弹出窗口显示为1ms,然后关闭,并且需要维修扩展。
我的问题是我的" upload.html"文件中的图像。
我的图像在扩展中,路径很好,但是当图像在那里时,Chrome Extension崩溃了。只需删除图像,然后扩展效果很好。
特别感谢@woxxom是帮助。