JavaScript – Analyser et créer des fichiers de liens à partir d’un dossier

J’ai créé un tas de fichiers HTML locaux et j’essaie de les traduire grâce aux fichiers xml et à beaucoup de JavaScript / JQuery. La partie traduction est terminée et j’essaie maintenant de créer un menu déroulant avec tous les fichiers XML pour sélectionner la langue souhaitée.

Tout d’abord, j’ai essayé de numériser un dossier local nommé “images” et d’imprimer le nom de mes fichiers dans une page html vierge, mais je n’ai pas pu le faire. J’ai fait beaucoup de recherches sur le débordement de stack et sur forum.jquery.com mais même si j’ai essayé beaucoup de choses, rien n’a fonctionné.

Voici ce que j’ai tiré pour le moment:

Côté HTML:

 

window.onload=ChangeLangue

Côté JS / Jquery:

 var folder = "images/"; $.ajax({ url: folder, success: function (data) { $(data).find("a").attr("href", function (i, val) { if (val.match(/\.(jpe?g|png|gif)$/)) { $("body").append(""); } }); } }); 

Qu’est-ce que je fais mal? Est-ce possible?

Les navigateurs n’autorisent pas les demandes d’origine croisée. Une erreur sera générée car les Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https. Parce que le protocole est file://

Vous pouvez le faire en plaçant un drapeau:

  1. Quittez Chrome.

  2. Redémarrez en utilisant la commande suivante.

MAC : dans le terminal, open /Applications/Google\ Chrome.app --args --allow-file-access-from-files

WINDOWS : Dans Exécuter, C:/PATH_TO_CHROME_INSTALLATION_FOLDER/chrome.exe --allow-file-access-from-files

Vous pouvez maintenant accéder aux fichiers à partir de votre ordinateur. Pour le vérifier, vous pouvez aller à chrome://version et voir l’ flag activé dans la section Command Line .

Comme vous avez var folder="images/" et supposez que la page chargée dans le navigateur se trouve dans le dossier /Users/Default/Desktop , la demande ajax effectuée sera

file:///Users/Default/Desktop/images

Si vous ajoutez / avant le dossier var folder = "/images/" , la demande sera file:///images/ .

Assurez-vous de fournir le chemin requirejs / complet.

Après avoir obtenu la réponse, celle-ci étant au format HTML, vous pouvez utiliser document.write(response) . De là, vous pouvez afficher et parcourir les dossiers.

J’ai essayé avec JS Code et j’ai obtenu le résultat.

  

PS: Aucune idée si cela fonctionne dans les machines Windows. Corrigez-moi si je me trompe. TIA.