Вам необходимо указать полный URL-адрес file:///
, чтобы включить ?
запрос или #
хеш-строки.
Подробнее:
В IE10 работает следующий подход, Firefox 28 и Chrome 36.
Если вы делаете это из пакетного файла в Windows с любым из этих браузеров, вы можете использовать обратную косую черту в пути до тех пор, пока вы используете префикс file:///
.Например, file:///C:/blah/blah/file.pdf#etc
- это правильный URL, но если ваш адрес отформатирован file:///C:\blah\blah\file.pdf#etc
, это тоже будет работать.
Вот как вы можете получить полный путь, используя командный файл.
file:///%CD%/file.pdf#blah
преобразуется в файл относительно рабочего каталога (обычно каталог пакетного файла, в отличие от явно измененного через командную строку или программно).
file:///%~dp0/file.pdf#blah
преобразуется в файл, относящийся к каталогу пакетного файла,Я обычно говорю с этим.
Вы можете использовать ../
для перемещения вверх относительно каталога командного файла.Полученный URL все равно должен работать нормально.
Если вы используете что-то более надежное, чем командные файлы, вы можете перевести все \
в /
s, чтобы создать правильный URL.
Например, в .NET я думаю, что вы можете сделать new Uri("C:\blah\file.pdf")
, и он даст вам файловый URI (я думаю, не уверен), который вы затем сможете получить и добавить к нему хеш.