2010-08-13 19 views
0

J'ai une application web locale qui permet aux utilisateurs de joindre et d'afficher des fichiers. L'affichage des fichiers est simplement window.open (nomfichier), cependant, chaque fois que le nom de fichier a un signe #, le fichier ne s'ouvre pas avec une erreur DNS. J'ai essayé d'échapper le symbole # avec %23, et \# mais il ne parvient toujours pas à ouvrir ... est-ce qu'il y a quelque chose de spécial que je dois faire pour échapper le symbole # dans une fenêtre window.open?Javascript: Window.Open avec un signe # dans l'URL?

J'ai copié le chemin de fichier à partir du fichier source directement vers un navigateur Web et il s'ouvre très bien, donc je supposais que c'était un problème avec la commande window.open.

EDIT: code window.open comme demandé. L'URL est toujours quelque chose de local sur notre réseau tel que \\ chemin \ filename.pdf

window.open('file:' + url, '', 'top=10,left=10,height=' + (screen.height - 50) + ',width=' + (screen.width - 50) + ',titlebar=no,resizable=yes,scrollbars=1'); 

EDIT # 2: J'ai essayé d'échapper à la # juste avant la chaîne window.open avec 23% et affiché avec une invite juste avant window.open, et je peux copier/coller la chaîne à IE et il s'ouvre bien, mais le code window.open échoue toujours.

URL Chemin: file:\\NetworkPath\DoC#1.pdf

Valeur window.open me donne: res://ieframe.dll/dnserror.htm#file://NetworkPath/Doc

L'application est hébergé dans un navigateur Web intégré au sein de notre application logicielle qui utilise IE (je pense 6)

+0

Le '% 23' devrait fonctionner, mais en fonction de la situation, vous devrez peut-être l'encoder deux fois, pouvez-vous coller le code' window.open() 'que vous essayez? –

+0

Je l'ai ajouté à l'article original – Rachel

+0

Il semble être un problème spécifique au navigateur. Cause dans IE cela fonctionne si j'ouvre l'URL contenant '#' en émulant un clic sur une telle étiquette: file:///C:/Users/ehpc/Desktop/file#fdfds.txt. Mais cela ne fonctionne pas si j'applique target = "_ blank" à . – ehpc

Répondre

1

On dirait qu'il y avait un bug répertorié dans Microsoft's kb avec IE6. :)

+0

Merci, c'est probablement mon problème. Le navigateur Web intégré que ce logiciel utilise est IE6 et je ne pense pas pouvoir le mettre à jour. J'ai fini par modifier le processus FileUpload pour supprimer tous les symboles des noms de fichiers avant de les sauvegarder, et pour les fichiers existants, je viens de lancer une invite contenant l'URL afin qu'ils puissent les copier/coller dans un navigateur web. L'application a seulement une poignée d'utilisateurs et ils sont le genre qui peut gérer les instructions de base comme ça :) – Rachel