在Chrome扩展程序和扩展程序弹出窗口中上传图片会关闭

时间:2016-07-11 11:07:40

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

我需要上传带有chrome扩展名的图片,当点击文件浏览器时,扩展程序弹出窗口关闭。如何处理文件浏览器和弹出窗口以保持打开状态。

2 个答案:

答案 0 :(得分:0)

这是一个棘手的问题。

基本思想是,每当弹出窗口失去焦点时,它应该立即关闭,这需要破坏弹出窗口的JavaScript上下文(结果是你的逻辑中断)。这是not something you can influence

模式对话框(例如文件输入应该)是个例外,但在Chrome运行的所有平台上都不能保持一致。证据:questionbug

每当你想要弹出窗口关闭时,你通常会把它放在后台页面中。这导致this workaround将文件输入放在后台页面中,并从弹出窗口中触发其选择。 但是(未经证实的)证据表明这不再起作用了。上面的问题还有另外一个,通过将输入标签注入当前页面而有效的答案,但这可能会导致“不可编写”的页面失败,例如作为Chrome网上应用店或内部chrome://页。

最安全的方法是打开一个单独的选项卡或弹出窗口来处理该过程。这显然是尴尬的用户体验。

答案 1 :(得分:0)

不确定你是否真的想要这样做,但是如果你有一个小应用程序并且它不是一个主要的壮举(或者你对Chrome开发人员抱有很高的期望'解决这个问题) - 作为临时解决方案,您可以要求用户在上传文件时打开开发工具,弹出窗口不会关闭。 虽然您最好将逻辑放入单独的文件中(例如' background.html')并将其从弹出窗口打开,如下所示:

chrome.tabs.create({url: chrome.extension.getURL('background.html')});