Comment obtenir le nom de fichier en javascript à partir du fichier d'entrée de la balise dans le navigateur IE
Je l'ai fait en jQuery, pour obtenir le nom de fichier du fichier d'entrée de la balise, Avec jQuery, il fonctionne parfaitement.
JS:
//jQuery('input[type=file]').on('change', prepareUpload);
document.getElementsByTagName('input[type=file]').addEventListener('change',prepareUpload1,true);
/*
//this works in jQuery
function prepareUpload(event)
{
var files = event.target.files;
var fileName = files [0].name
alert(fileName);
}
*/
/****Check it here ****/
//it does not work in javascript
function prepareUpload1(event)
{
var files = event.target.files;
var fileName = files [0].name
alert("fileName 2 : "+fileName);
}
HTML:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" />
Mais j'ai trouvé De l'événement.la cible ne fonctionne pas sous IE, j'ai essayé de changer java script addeventlistener, il n'a pas de travail.
Il déclenche une erreur
Uncaught ReferenceError: input is not defined
Il travaille en jQuery mais ça ne fonctionne pas en JS, en Raison de IE j'ai besoin de la changer en JS.
Peut-on aider
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé le problème pour être en
getElementsByTagName
méthode, vous utilisez cette option lorsque vous avez un groupe d'éléments avec le même nom de balise.Essayer ce code ci-dessous, il fonctionne
Ci-dessous est le code si vous voulez le faire pour plus d'un élément
jQuery('input[type=file]').on('change', prepareUpload);
getElementsByTagName
, voici comment vous pourriez le faire.getElementsByTagName
retourne un tableau alors vous pouvez faire une boucle sur le tableau pour définir uneventListener
à chaque élément, et vous êtes bon pour aller.getElementsByClassName
. Merci encoreUnable to get property '0' of undefined or null reference
pour cette lignefileName = files[0].name;
event.target
- vous besoin de quelque chose commeif (window.navigator.userAgent.indexOf("MSIE ") > 0) { var files = event.srcElement.files; var name = files[0].name; }
Cela fonctionne
Le code ci-dessus est correcte pour tous, mais IE tout simplement parce que IE n'aime pas
event.target
- vous besoinevent.srcElement
: https://developer.mozilla.org/en-US/docs/Web/API/Event/srcElementDonc quelque chose comme cela devrait régler ça:
Je ne pouvais pas faire ce travail dans la "course" Extrait de chose SI a, alors voici comment vous pouvez juste obtenir à l'aide d'un autre bouton:
JS:
HTML: