Tengo un DIV en la página que quiero que el usuario pueda descargar como un archivo de texto (esta es una clave de licencia). Este DIV tiene \n símbolos que se muestran correctamente usando white-space: pre; . Utilizo el siguiente código para crear un enlace temporal <a> con contenido DIV y descargarlo. Esto funciona bien en Chrome, pero FireFox pierde los símbolos de nueva línea y obtengo texto de una sola línea.
downloadLicenseBtn = $("#download_license"); downloadLicenseBtn.click(function(e){ e.preventDefault(); var $temp = $("<a>"); $(body).append($temp); $temp.attr({ download: 'license.txt', href: "data:text/html," + $('.edd_sl_license_key').text() })[0].click() $temp.remove(); }); Traté de usar la función JQuery html() en lugar de text() , traté de configurar data:text/plain;charset=utf-8 . Sin suerte. :(
JSFiddle aquí: https://jsfiddle.net/movs21/vy4ukdpr/
Necesita usar encodeURIComponent( text ) , también es posible reemplazar \r\n con %0D%0A: replace('\n', '%0A', text) .
La misma pregunta aquí: el archivo de texto de exportación de Javascript no reconoce \ r \ n en Firefox