Probé diferentes enfoques para leer un archivo de texto del sistema de archivos local en JavaScript y mostrar el contenido del archivo en alert()
pero todo fue en vano.
Enfoque 1
function readTextFile(file) { var rawFile = new XMLHttpRequest(); rawFile.open("GET", file , false); rawFile.onreadystatechange = function () { if (rawFile.readyState === 4) { if (rawFile.status === 200 || rawFile.status == 0) { var allText = rawFile.response; document.getElementById("content").innerText = allText; alert(allText); } } else { alert("Can't read the file"); } } rawFile.send(null); } readTextFile("FormulaQuestion.txt");
El archivo FormulaQuestion.txt está en el mismo directorio que el archivo html, este enfoque muestra una ventana de alerta vacía en el navegador.
Enfoque 2 usando el método de búsqueda
fetch('FormulaQuestion.txt') .then(response => response.text()) .then((data) => { alert(data); })
esto no muestra nada
Enfoque 3 usando JQuery
$.get('FormulaQuestion.txt', function (data) { alert(data) }, 'text');
Esto tampoco funciona.
Estoy creando una aplicación de escritorio que usa un control de navegador web para cargar un archivo html que está incrustado en la aplicación. La aplicación lee la cadena de la base de datos sqlite y la guarda en el archivo FormulaQuestion.txt , luego actualiza el componente WebControl que vuelve a cargar el archivo html. Ahora, cuando se vuelve a cargar el archivo html, el JavaScript debe leer el archivo de texto y mostrarlo en alerta (), que una vez que la alerta pueda mostrar el contenido del archivo, lo configuraré en un párrafo y eliminaré la alerta () . Por favor, alguien debería ayudarme.
Los navegadores por diseño no permiten el acceso al sistema de archivos para JavaScript, ya que permitir dicho acceso sería un grave problema de seguridad.
Para proporcionar el archivo FormulaQuestion.txt a su secuencia de comandos, deberá alojar el archivo en un servidor y solicitarlo a través de una solicitud HTTP (como con su búsqueda). La clave aquí es que se necesita un servidor para transmitir el archivo a través del protocolo HTTP a su secuencia de comandos.
Si trabaja localmente, hay muchas opciones para ejecutar un servidor local.
También puede probar algunos servicios de nivel gratuito como Vercel o Netlify. Creo que ambos le permiten simplemente arrastrar/soltar un archivo y lo alojará por usted.