输入[file] .click()在Firefox KeyboardEvent中不起作用

时间:2015-12-22 21:41:19

标签: javascript html firefox

当按 CTRL + O 时,它应该触发fileInput.click()类型文件的输入 - 打开文件打开对话框(就像用手点击<input type="file" />一样)。

现在在大多数浏览器中,我的代码确实可以正常工作,但不适用于Firefox:

https://jsfiddle.net/ue9Lrc7a/3/

var fileInput = document.createElement("input")
fileInput.type = "file"

function load() {
  alert("loaded: " + fileInput.files.length)
}

function onkey(ev) {
  if (ev.keyCode == 79 /*KEY O*/ && ev.ctrlKey) {
    fileInput.click()
    ev.preventDefault()
    return false
  }
}


fileInput.addEventListener("change", (function(ipt) {
  return function() {
    load();
    ipt.value = null;
  }
})(fileInput))
window.addEventListener("keydown", onkey)

有没有办法让Firefox打开Dialog?*

*注意:当click()在MouseEvent中是triggerend但在KeyboardEvent中没有

时,它可以正常工作

*在MDN上,它说Firefox已输入@ file(完整)支持

0 个答案:

没有答案