Estoy tratando de cambiar el atributo de datos de un elemento con id 'previewImage'. Modifico el atributo haciendo una llamada Ajax a otro archivo y recupero los datos. Todos los navegadores muestran los datos recibidos de la llamada AJAX (imagen o PDF) (codificado en base64), excepto Google Chrome. ¿Hay una solución para esto?
Vi esta respuesta antes, pero creo que está obsoleta (no funcionó para mí): <objeto> funciona en todos los navegadores excepto Google Chrome
Llamada Ajax:
function getFile(id, r = false) { timer = setTimeout(function(){ $.ajax({ url: "/project/getFile", method: "POST", data: {id: id} }) .done(function(data) { $('#previewImage').prop('data', data); }) }, 100) }
objeto:
<object id="previewImage" class="w-100" style="min-height: 500px">
¡Gracias por la ayuda a todos! Cambié la etiqueta del objeto a un Iframe, que hizo lo siguiente:
<iframe id="previewImage" class="w-100" height="500px"></iframe>
La llamada de AJAX se mantuvo casi igual:
function getFile(id, r = false) { timer = setTimeout(function(){ $.ajax({ url: "/project/getFile", method: "POST", data: {id: id} }) .done(function(data) { $('#previewImage').prop('src', data); $('#previewImage image').css("width: 100%") }) }, 100) }
¡Esto funcionó para mí!