在background.js中打开window.open浏览器BUG?它可以在未打包的扩展程序中工作,而不能在PROD中发布(在商店中发布)

时间:2019-03-16 10:51:41

标签: javascript google-chrome google-chrome-extension

我无法弄清楚为什么我的代码在DEV环境中工作,为什么当我发布代码时它无法工作,并使我的Chrome扩展程序崩溃,并且有消息说我的扩展程序已损坏。

自从Chrome(73.0.3683.75)最新更新以来,我们无法在content.js中进行跨站点调用,因此我需要打开一个弹出窗口来执行我需要做的事情。

我从content.js调用background.js中的一个方法来打开弹出窗口。

Content.js

chrome.runtime.sendMessage(extensionID, { method: "CustomUpload",function(){

            });

在我的background.js脚本中,我接到了电话并打开弹出窗口。

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中起作用而不是在生产中。我在哪里想念什么?

如果我激活开发者模式,我会得到“扩展名”并加载扩展名,解压后一切正常。 chrome有问题吗?

%userprofile%\AppData\Local\Google\Chrome\User Data\Default

我做了很多测试,并且总是遇到同样的问题。

我尝试

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"));

总是相同的结果,“在本地”可以正常工作,但是当它发布时停止工作并收到消息扩展可能已损坏。

我看到弹出窗口显示1毫秒,然后关闭,并且扩展件需要维修。

1 个答案:

答案 0 :(得分:0)

我的问题是我的“ upload.html”文件中的图像。

我的图像在扩展名中,路径很好,但是当有图像时,chrome扩展名崩溃了。只需删除图像,扩展名即可正常工作。

特别感谢@wOxxOm的帮助。