边缘扩展无法在onchange事件中获取上传文件名?

时间:2018-09-05 03:13:00

标签: javascript microsoft-edge-extension

在Edge扩展程序中,我想获取所有上传文件的名称。这是我的代码:

document.addEventListener('click', (event) => {
    const element = event.srcElement;
    const elementName = element.localName;
    if (elementName === 'input') {
        if (element.getAttribute('type') === 'file') {
            element.onchange = function (e) {
                console.log(e.target.value);
            }
        }
    }
});

但是,这个console.log是:

{"notifyType":"consoleItemLog","message":{"message":"","styles":"","hasFormatString":true,"targetId":"uid36","fileUrl":"js/contentscript.js","lineNumber":49,"columnNumber":17}}

我不知道如何获取上传文件名? 当我console.log(e)时,onchange被拒绝权限。

enter image description here

非常感谢您!

1 个答案:

答案 0 :(得分:0)

我可以看到您要使用OnChange事件,但是我不知道您想在哪里使用此事件。 最好使用button的click事件来获取上传文件的列表。 下面是示例代码。

<!DOCTYPE html>
<html>
<body>

<p>Click the button to create a File Upload Button.</p>
<input type="file" id="fileElementId" name="files[]" multiple/>
<button onclick="fun2()">Try it</button>

<script>

function fun2()
{
var inp = document.getElementById('fileElementId');
for (var i = 0; i < inp.files.length; ++i) {
  var name = inp.files.item(i).name;
  //alert("here is a file name: " + name);
  console.log("here is a file name: " + name);
}
}
</script>

</body>
</html>

输出: Click here to see the output:

致谢

Deepak