2

我想将 HTML5 File API与不显眼的 JavaScript 一起使用。但我只能通过从 HTML 调用 JavaScript 函数来使其工作。有什么方法可以通过不显眼的 JavaScript 使用 File API?

并非所有浏览器都支持 File API,但我已经在 Google Chrome 和 Firefox 中尝试过。

从文档中可以看出:

<input type="file" id="input" onchange="handleFiles(this.files)">

我已经尝试过使用这种不显眼的 JavaScript,但它不起作用:

window.onload = function() {
    var input2 = document.getElementById('input2');
    input2.addEventListener('onchange', handleFiles);
}

下面是一个完整的示例,可在jsFiddle上进行测试。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<script>
window.onload = function() {
    var input2 = document.getElementById('input2');
    input2.addEventListener('onchange', handleFiles);
}

function handleFiles(e) {
    alert('got files');
}
</script>
</head>
<body>
<h1>Test</h1>
<input type="file" id="input1" onchange="handleFiles(this.files)"/>
<input type="file" id="input2"/>
</body>
</html>
4

2 回答 2

7

尝试:

window.onload = function() {
    var input2 = document.getElementById('input2');
    input2.addEventListener('change', handleFiles,false);
    //                       ^not onchange        ^older firefox needs this
}

jsfiddle在这里

于 2011-07-21T11:22:20.113 回答
3

不是onchange,而是

input2.addEventListener('change', handleFiles);
于 2011-07-21T11:22:40.177 回答