У меня есть локальное веб-приложение, которое позволяет пользователям прикреплять и просматривать файлы. Просмотр файлов - это просто 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)
%23
должен работать, хотя в зависимости от ситуации вам может потребоваться кодировать его дважды, можете ли вы вставить кодwindow.open()
, который вы пытаетесь использовать? - person Nick Craver   schedule 13.08.2010