Javascript: Window.Open with a # sign in URL?

Имам локално уеб приложение, което позволява на потребителите да прикачват и преглеждат файлове. Прегледът на файлове е просто window.open(fileName), но когато името на файла има знак # в него, файлът няма да успее да се отвори с dns грешка. Опитах да екранирам символа # с %23 и \#, но все още не успява да се отвори... има ли нещо специално, което трябва да направя, за да екранирам символа # в URL адрес на window.open?

Копирах пътя на файла от изходния файл директно в уеб браузър и той се отваря добре, така че предположих, че е проблем с командата window.open.

РЕДАКТИРАНЕ: window.open код, както е поискано. URL адресът винаги е нещо локално в нашата мрежа като \\path\fileName.pdf

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

РЕДАКТИРАНЕ #2: Опитах се да избягам от # точно преди низа window.open с %23 и го показах с подкана точно преди window.open и мога да копирам/поставя низа в IE и той се отваря добре, независимо от прозореца. отворен код все още се проваля.

URL път: file:\\NetworkPath\Doc #1.pdf

Стойността window.open ми дава: res://ieframe.dll/dnserror.htm#file://NetworkPath/Doc

Приложението се хоства във вграден уеб браузър в нашето софтуерно приложение, което използва IE (мисля 6)


person Rachel    schedule 13.08.2010    source източник
comment
%23 трябва да работи, но в зависимост от ситуацията може да се наложи да го кодирате два пъти, можете ли да поставите кода window.open(), който опитвате?   -  person Nick Craver    schedule 13.08.2010
comment
Добавих го към оригиналния пост   -  person Rachel    schedule 13.08.2010
comment
Изглежда, че проблемът е специфичен за браузъра. Защото в IE работи, ако отворя url, съдържащ '#', като емулирам щракване върху такъв етикет: ‹a id=mylink href=file:///C:/Users/ehpc/Desktop/file#fdfds.txt›file: ///C:/Users/ehpc/Desktop/file#fdfds.txt‹/a›. Но не работи, ако приложа target=_blank към ‹a›.   -  person ehpc    schedule 13.08.2010
comment
IE традиционно игнорира # в URL адресите от файловата система   -  person mplungjan    schedule 13.08.2010


Отговори (1)


Изглежда, че има посочена грешка в kb на Microsoft още с IE6. :)

person epascarello    schedule 13.08.2010
comment
Благодаря ви, вероятно това е моят проблем. Вграденият уеб браузър, който този софтуер използва, е IE6 и не мисля, че мога да го актуализирам. В крайна сметка модифицирах процеса на FileUpload, за да премахна всички # символи от имената на файловете преди запазване, а за съществуващи файлове просто извеждам подкана, съдържаща URL адреса, така че те да могат сами да го копират/поставят в уеб браузър. Приложението има само няколко потребители и те са от типа, който може да се справи с основни инструкции като тези :) - person Rachel; 13.08.2010