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:
Quittez Chrome.
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.