Javascript: Window.Open с 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)


Похоже, в базе знаний Microsoft была указана ошибка еще в IE6. :)

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