Estoy intentando activar una descarga de PDF cuando aterrizo en una página con next.js. Al hacerlo, está abriendo otra pestaña con el PDF con lo que estoy bien, pero me gustaría abrir el PDF en otra pestaña. Así que lo agregué con link.target ="_blank" en la carga de la página, hay 2 pestañas de PDF que están abiertas ahora.
Intenté obtener solo 1 pestaña con el PDF para abrir, pero no puedo. ¿Es esto un problema con next.js? ¿Cómo puedo obtener mi función en solo 1 pestaña de PDF?
Creo que el problema puede estar relacionado con el renderizado del lado del servidor. Si es así, ¿cómo puedo llamar a esta función solo una vez?
Aquí está mi función de descarga de archivos:
function downloadFile(filePath) { if(process.browser) { var link = document.createElement('a'); link.href = filePath; link.target = "_blank" link.download = filePath.substr(filePath.lastIndexOf('/') + 1); link.click(); } } downloadFile("http://www.africau.edu/images/default/sample.pdf");Aquí está mi próxima página js completa:
const Download= () => { function downloadFile(filePath) { if(process.browser) { var link = document.createElement('a'); link.href = filePath; link.target = "_blank" link.download = filePath.substr(filePath.lastIndexOf('/') + 1); link.click(); } } downloadFile("http://www.africau.edu/images/default/sample.pdf"); return ( <Layout> <div> download pdf</div> </Layout> ); }; export default Download;