Foros del Web » Programando para Internet » Javascript »

FileReader, readAsBinaryString en IE10

Estas en el tema de FileReader, readAsBinaryString en IE10 en el foro de Javascript en Foros del Web. Hola compañeros. Tengo un problema que a ver si me ayudáis a resolver. He creado una herramienta que guarda en un IndexedDB cadenas binarias en ...
  #1 (permalink)  
Antiguo 17/01/2014, 05:04
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Pregunta FileReader, readAsBinaryString en IE10

Hola compañeros.

Tengo un problema que a ver si me ayudáis a resolver. He creado una herramienta que guarda en un IndexedDB cadenas binarias en base64 para luego descargarlas. Funciona correctamente en chrome y firefox pero en IE10, cuando leo el string binario me dice que el método no es válido (FileReader.readAsBinaryString()).

Código Javascript:
Ver original
  1. reader.onload = function (event) {
  2.     save.href = event.target.result;
  3. };
  4.  
  5. reader.readAsBinaryString(self.generateBlob(el.find('.attachdata').html()));

El generateBlob() es lo siguiente:

Código Javascript:
Ver original
  1. this.generateBlob = function(data) {
  2.         var mime = this.getMIMEType(data);
  3.         if(mime[1] === "") {
  4.             mime[1] = "application/octet-stream";
  5.         }
  6.         var txt = [data]; // necesita un array el objeto Blob
  7.         var blob = new Blob(txt, {type: mime[1]});
  8.         return blob;
  9.     };

este trozo de código lo necesito para hacer el evento onload de reader. Entonces para IE me encontré con esto:

http://stackoverflow.com/questions/1...tring-for-ie10

Pero claro, el objeto new Uint8Array() no me va a lanzar el evento onload de FileReader porque no tiene nada que ver.

Entonces me pregunto cómo podría hacer para leer el base64 y asignarlo a un href cuando se cargue del todo el código binario.

Alguien tiene alguna idea? Si necesitáis más datos los pondré encantado.

Saludos!
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #2 (permalink)  
Antiguo 17/01/2014, 05:10
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: FileReader, readAsBinaryString en IE10

Hola amigos, he hecho lo siguiente:
Código Javascript:
Ver original
  1. if(reader.readAsBinaryString) {
  2.                 reader.readAsBinaryString(self.generateBlob(el.find('.attachdata').html()));
  3.             } else {
  4.                 reader.readAsDataURL(self.generateBlob(el.find('.attachdata').html()));
  5.             }

Y ahra internet explorer pasa por el else ejecutando readAsDataURL , pero hay un problema a mayores. Dentro del reader.onload tengo esto:

Código Javascript:
Ver original
  1. var clicEvent = new MouseEvent('click', {
  2.                     'view': window,
  3.                     'bubbles': true,
  4.                     'cancelable': true
  5.                 });

el cual no le gusta a IE, supongo que el objeto new MouseEvent, que la consola dice "el objeto no acepta esta propiedad o valor".

Cómo soluciono esto?
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #3 (permalink)  
Antiguo 17/01/2014, 07:18
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: FileReader, readAsBinaryString en IE10

No sé si se le ocurre a alguien cómo solucionar esto, pues sólo falla en IE (firefox, chrome, android, iOS, todo correcto)
He probado a cambiar el new MouseEvent('click') por lo siguiente:

Código Javascript:
Ver original
  1. var clickEvent = document.createEvent("MouseEvent", { 'type':'click'});
  2. save.dispatchEvent(clickEvent); //(InvalidStateError)

Pero me falla a la hora de hacer el dispatch event con el error InvalidStateError.

Esto da alguna pista? No encuentro nada más de cómo solucionarlo, quizás alguien que me ilumine.

Saludos!
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.

Etiquetas: base64, explorer, internet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:42.