Chrome扩展程序API - 触发器文件上载对话框

时间:2017-11-27 12:15:08

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

我正在尝试从我的内容脚本触发文件上传对话框。

当我直接在页面控制台中键入以下内容时,它会工作并显示输入对话框。

document.getElementById("upload").click();

但是如果我在我的content.js脚本中做同样的事情,它就不会。

我还尝试在页面中注入一个脚本然后触发它;

injectScript('events.js');

function injectScript(filename) {
  var script = document.createElement('script');
  // TODO: add "script.js" to web_accessible_resources in manifest.json
  script.src = chrome.extension.getURL(filename);
  script.onload = function() {
      this.remove();
  };
  (document.head || document.documentElement).appendChild(script);
}

//in document ready
var event = document.createEvent('customEvent');
event.initCustomEvent('triggerUpload', true, true, {});
document.dispatchEvent(event);

然后在events.js中:

document.addEventListener('triggerUpload', function (e) {
    console.log("inside"); //yes, my event triggered successfully

    var el = document.getElementById("upload");

    el.click();

    //other things tried..
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("click", false, true);
    el.dispatchEvent(evt);

    var event = new Event('click');
    el.dispatchEvent(event);
});

然而,没有任何作用。

这不可能吗?

0 个答案:

没有答案