使用Chrome或firefox扩展中的Javascript文件上传,无需用户干预

时间:2014-05-14 12:12:12

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

我设法在网页中获取按钮的元素。我知道它的ID,它的类等;我甚至设法从Google Chrome扩展程序的内容脚本中触发点击事件。该按钮位于Google网页内。

虽然有一个浏览按钮,但会打开一个openDialog窗口并提示用户选择某个文件进行上传。如何在不提示用户输入文件的情况下继续自动上传?我只是想从内容脚本中提取字符串,网页从那里获取它。

Google Chrome浏览器中是否有针对此问题的解决方案?

谢谢!

2 个答案:

答案 0 :(得分:3)

如果您从客户端计算机上传,则无法进行。它是file.upload的安全功能。如果检查上传文件的路径,则会注意到c:// fakepath / xxxxx这是为了防止应用程序在客户端计算机上查找文件结构。

https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications

答案 1 :(得分:1)

在Firefox附加组件中(好吧,在特权部分,即不是SDK页面模型等),您可以构建一个可以与常规HTML5内容一起使用的文件对象(XMLHttpRequest,{{ 1}};))直接通过the File "constructor"

FormData

对于Chrome,你很幸运,因为@David已在另一个答案中正确指出。

编辑1 : 实际上,当涉及到chrome时,可能会请求a file://* permission,让用户明确选择加入,然后使用xhr等首先将文件检索为blob,然后上传blob与另一个var file = File("path/to/some/file"); 。但是,Haven没有测试过这个。