Исходя из результатов моего тестирования, я обнаружил, что на входе не работает в IE и Edge.
![enter image description here](https://i.stack.imgur.com/UcyEM.png)
Вы можете попробовать заменить на входе на при изменении . Может работать с IE и Edge.
Обратите внимание, что событие chnage будет выполняться только при изменении в вводе файла. Если пользователь выберет тот же файл, он не запустится.
Еще одна вещь, которую я заметил, что Метка для не работает для IE. Поэтому в IE вам нужно сделать видимым ввод HTML-файла и щелкнуть по нему, чтобы выполнить код.
Модифицированный код:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#userfile").on("change", function() {
var test_test = $('#userfile')[0].files[0];
console.log($('#userfile')[0].files[0]);
});
});
</script>
</head>
<body>
<label for="userfile"><a>add</a></label>
<input id="userfile" name="userfile" type="file" />
</body>
</html>
Вывод в IE 11:
![enter image description here](https://i.stack.imgur.com/gg8B8.gif)
Вывод в MS Edge:
![enter image description here](https://i.stack.imgur.com/42Jmy.gif)
вы можете попытаться найти обходной путь для Ярлык для или вы можете просто добавить дополнительную кнопку и попытаться выполнить код при нажатии этой кнопки, что может помочь вам решить проблему.