2009-11-16 10 views
-1

HI, Cela n'a aucun sens, mais par exemple si j'ai téléchargé un fichier dans votre dossier/Downloads et je voulais exécuter le fichier: ///.../ Téléchargements/myfile1.txt je pouvais aller:Javascript: Ouvert 1 + liens (qui n'ont pas de contenu)

window.location = "file:///.../Downloads/myfile1.txt; 

Mais si je devais dire 10, ou il a été généré par un script .. comment pourrais-je faire efficacement ce .. ouvert ... myfile1.txt => ... myfile1.txt J'ai essayé d'exécuter une instruction jquery .Each() avec un tableau de noms de fichiers .. mais elle ouvre seulement le premier.

window.open(); 

qui me laisse avec des centaines de fenêtres ouvertes, que je ne veux pas que:/

BTW. Je ne fais pas le fichier: /// mais ce n'est pas un http: // son URL local Scheme :)

Merci !!

+0

Vous avez raison, cela n'a aucun sens. Que voulez-vous dire que vous voulez "exécuter un fichier"? Qu'est-ce que cela signifie de "lancer" un fichier '.txt' de toute façon? –

+1

La question n'est pas claire. Qu'est-ce que tu veux faire? Voulez-vous ouvrir une série d'URL locales, l'une après l'autre, dans la fenêtre actuelle? Ou quoi? –

+0

Télécharger des centaines de fichiers de cette façon va être nul, peu importe ce que vous faites. Comment vos utilisateurs vont-ils gérer les téléchargements? Je suggère une approche légèrement différente - zip les fichiers côté serveur, et en faire un seul téléchargement. – jvenema

Répondre

1

Si ce que vous essayez d'ouvrir est d'ouvrir une série d'URL, l'une après l'autre, dans une seule fenêtre, alors je vois quelques options. Lorsque vous parcourez la liste, vous pouvez utiliser window.open sur chacun d'entre eux, mais donnez un nom à la fenêtre et utilisez le même nom pour chacun - de cette façon, une seule fenêtre supplémentaire sera chargée et chaque URL sera chargée il. Notez qu'il pourrait bien commencer à en charger un avant que le précédent n'ait eu le temps de terminer le chargement, sauf si vous ajoutez une pause quelconque, ou utilisez une approche de rappel.

La seconde approche consiste à les charger l'une après l'autre dans un iframe sur votre page. Les mêmes problèmes de synchronisation s'appliquent.

+0

faire un iframe pour chaque fenêtre.open dans un div caché, puis retirez-le avant que le prochain est fait: D – tarnfeld

0

Cela ne va pas fonctionner parce que chaque navigateur décent bloquera l'accès aux documents locaux, téléchargés ou non.

+0

bien cela ne fonctionnera que sur un Mac quand même ... – tarnfeld