quantum navegador habilitar gratis desactivar como chrome celular activar javascript binary xmlhttprequest arraybuffer

navegador - desactivar javascript chrome



¿Cómo puedo publicar datos binarios en navegadores que no son compatibles con matrices tipadas? (0)

Estoy tratando de publicar datos binarios en un servidor. Esto funciona exactamente como lo necesito, en Chrome 15:

XMLHttpRequest.prototype.sendAsBinary = function(datastr) { function byteValue(x) { return x.charCodeAt(0) & 0xff; } var ords = Array.prototype.map.call(datastr, byteValue); var ui8a = new Int8Array(ords); this.send(ui8a.buffer); };

Sin embargo, necesito que esto funcione en ciertos navegadores que no son compatibles con el tipo Int8Array (o Blobs).

Tal vez la solución es crear mi propia implementación de ArrayBuffer (ui8a.buffer es un ArrayBuffer). El problema es que no sé qué es este objeto; al examinarlo en la consola de JavaScript, solo se muestra una propiedad byteLength.

Actualización : Siento que me estoy acercando, pero mi conversión no es correcta. Esto es lo que estoy intentando:

XMLHttpRequest.prototype.sendAsBinary = function(datastr) { var blob; function byteValue(x) { return x.charCodeAt(0) & 0xff; } var ords = Array.prototype.map.call(datastr, byteValue); if (window.Int8Array) { var ui8a = new Int8Array(ords); blob = ui8a.buffer; } else { var strArray = Array.prototype.map.call(ords, function(x) { if (x > 127) x = x-256; return String.fromCharCode(x); }); blob = strArray.join(); } this.send(blob); };

Mi blob termina siendo el doble de lo que debería ser, lo que hace alusión a su mención de la codificación de dos bytes a la vez. Pero no estoy seguro de cómo hacerlo (todavía) ...