Расширение Edge не может получить имя загружаемого файла в событии onchange? - PullRequest
0 голосов
/ 05 сентября 2018

В расширении 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 голосов
/ 06 сентября 2018

Я вижу, что вы хотите использовать событие OnChange, но я не понимаю, где вы хотите использовать это событие. Лучше использовать событие нажатия кнопки, чтобы получить список загруженных файлов. Ниже приведен пример кода.

<!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>

Выход: Нажмите здесь, чтобы увидеть вывод:

Привет

Дипак

...