vaciar una quitar papelera pagina nube los google eliminar deshacer como borran automaticamente archivos accion javascript internet-explorer cross-browser file-io

javascript - una - se borran los archivos de google drive



cómo restablecer(borrar) la entrada del archivo (5)

¿Cómo puedo restablecer la entrada de archivos en IE, utilicé lo siguiente y funcionó en Chrome y FF, pero no IE

fileInputElement.value=""

¿Cuál es la alternativa en IE?


No puede restablecer la entrada de archivo por sí mismo. Lo que puede hacer es ajustar su entrada de archivo en una etiqueta <form id="form_id"> y restablecer el formulario. Con jQuery puedes hacer $(''#form_id'')[0].reset(); y en JavaScript puede hacer document.getElementById(''form_id'').reset() .


Solución de navegador cruzado por @ Gyrocode.com en vanilla JS:

var clearFileInput = function (input) { if (!input) { return; } // standard way - works for IE 11+, Chrome, Firefox, webkit Opera input.value = null; if (input.files && input.files.length && input.parentNode) { // workaround for IE 10 and lower, pre-webkit Opera var form = document.createElement(''form''); input.parentNode.insertBefore(form, input); form.appendChild(input); form.reset(); form.parentNode.insertBefore(input, form); input.parentNode.removeChild(form); } }


Con IE 10 resolví el problema con:

var file = document.getElementById("file-input"); file.removeAttribute(''value''); file.parentNode.replaceChild(file.cloneNode(true),file);

dónde :

<input accept="image/*" onchange="angular.element(this).scope().uploadFile(this)" id="file-input" type="file"/>


SOLUCIÓN

El siguiente código me funcionó con jQuery. Funciona en todos los navegadores y permite conservar eventos y propiedades personalizadas.

var $el = $(fileInputElement); $el.wrap(''<form>'').closest(''form'').get(0).reset(); $el.unwrap();

MANIFESTACIÓN

Ver este jsFiddle para código y demostración.

CAMPO DE GOLF


Si fileInputElement está solo en el formato fileInputForm , puede hacer:

window.fileInputForm.reset();

De lo contrario, para IE, tendrás que reemplazar el elemento con un clon:

fileInputElement.parentNode.replaceChild( fileInputElement.cloneNode(true), fileInputElement );