2017-08-17 1 views
0

J'essaie juste de faire quelque chose d'aussi simple. Tout ce que je veux faire est de charger le contenu d'un fichier texte dans une variable. Le fichier texte est seulement une ligne et est toujours une chaîne. Je sais qu'il ya d'autres sujets posent la même question, mais à partir de maintenant, la réponse la plus proche, je l'ai obtenu est ceci:Comment charger des données à partir d'un fichier texte dans une variable en javascript

var client = new XMLHttpRequest(); 
client.open('GET', '/foo.txt'); 
client.onreadystatechange = function() { 
    alert(client.responseText); 
} 
client.send(); 

Le problème est que je suis en train de charger les informations dans une variable. Ne l'envoie pas en tant qu'alerte. J'ai essayé ceci:

var string; 
var client = new XMLHttpRequest(); 
client.open('GET', '/foo.txt'); 
client.onreadystatechange = function() { 
    string = client.responseText; 
} 
client.send(); 

Cela ne fonctionne pas non plus.

Ce n'est pas un doublon de this post, car ce post est axé sur Ajax, et ne répond pas réellement comment importer l'information. Je n'utilise pas Ajax. Je veux que l'information du fichier soit utilisable ailleurs dans le programme.

+1

Copie possible de [Comment renvoyer la réponse d'un appel asynchrone?] (Https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous- call) –

+0

@SterlingArcher Ce post est principalement axé sur Ajax, et n'explique pas comment charger l'information du fichier dans la variable. –

+0

Alerte la variable à l'intérieur de l'onreadystatechange, si cela fonctionne, le problème ici est évidemment l'appel asynchrone comme indiqué ci-dessus ^^. Vous devez attendre que l'événement onreadystatechange se déclenche avant d'utiliser la variable affectée. – Merigold

Répondre

0

il est évident que vous essayez de faire une requête HTTP à l'ordinateur local de l'utilisateur et pour des raisons évidentes - les navigateurs ne le permettent pas! d'autres pirates seraient capables de lire tout le contenu d'un lecteur C d'un utilisateur s'ils le voulaient - ou pire!

Donc - vous devez télécharger le fichier! à savoir <input type="file" id="uploadFile" /> Cocher cette JSFiddle, utilisez le onChange event of the input to read the file

Pour une situation similaire, je télécharger des fichiers sur le serveur et utilisé PHP/C# (ne me rappelle plus du haut de ma tête) qui retourne les données requises - ce fait les choses sont un peu plus faciles - le serveur recevrait le fichier et validerait, extrairait les informations requises et ne renverrait que les données requises - bien que cela semble plus de travail côté serveur - ce qui est un peu plus que vous pouvez prévoir pour réduire la quantité de code javascript que vous pourriez avoir à écrire.

+0

J'ai une vieille tablette cassée. J'ai fait une page Web qui me dit l'heure et la date en tout temps. Il me dit aussi la météo locale. Je vais le monter sur mon mur de dortoir. J'ai également créé un programme qui lit mes courriels et exporte la date dont j'ai besoin ensuite pour déplacer ma voiture du stationnement où elle est actuellement garée. J'essaie de faire afficher l'horloge pour savoir si je dois ou non déplacer ma voiture. voiture. Je ne pirate pas. –

+0

Ok, je pense que j'ai besoin d'une meilleure compréhension de ce que vous faites. Donc, vous avez une tablette, vous avez une page Web et un serveur quelque part, vous accédez à cette page à partir de la tablette. Vous faites un appel AJAX à un fichier txt qui est également sur le net quelque part et les données du fichier txt ne sont pas utilisables? Si cela est correct, quel type de données est dans le fichier, pouvez-vous coller un exemple? Deuxièmement, de quelle manière souhaitez-vous afficher les données? –