Как мне сделать гиперссылку file: //, которая работает как в IE, так и в Firefox? - PullRequest
10 голосов
/ 01 мая 2009

На моих веб-страницах с документацией мне часто приходится указывать ссылки на местоположения, файлы и приложения (.xbap), хранящиеся в интрасети.

В IE это прекрасно работает с URL-адресами, отформатированными так:

<a href="file://///company.org/ProjectA/StatsReport">Go to folder</a>
<a href="file://///company.org/ProjectA/Readme.txt">Download file</a>
<a href="file://///company.org/ProjectA/Dashboard.xbap">Run xbap</a>

Эти ссылки прекрасно работают в IE, но в Firefox - нет.

Кто-нибудь знает, как я могу отформатировать вышеуказанные ссылки для работы как в IE, так и в Firefox?

Редактировать Приведенная выше ссылка действительно работает, если я помещаю их в локальный файл. Они перестают работать только в Firefox, когда они являются частью HTML-файла в сети (не на моем компьютере). В Firefox должен быть какой-то параметр безопасности, который не позволяет ссылкам file: /// работать с внешним контентом?

Ответы [ 6 ]

6 голосов
/ 01 мая 2009

просто используйте

file:///
Насколько я могу судить,

работает в IE, Firefox и Chrome.

см. http://msdn.microsoft.com/en-us/library/aa767731(VS.85).aspx для получения дополнительной информации

5 голосов
/ 04 июня 2011

протокол файла
Открывает файл на локальном или сетевом диске.

Синтаксис

Copy
 file:///sDrives[|sFile]
Tokens 

sDrives
Указывает локальный или сетевой диск.

sFile
Необязательный. Указывает файл для открытия. Если sFile не указан и учетная запись, имеющая доступ к диску, имеет разрешение на просмотр каталога, отображается список доступных файлов и каталогов.

Замечания

Файл протокола и параметр sDrives можно опустить и заменить только представлением в командной строке буквы диска и расположения файла. Например, чтобы просмотреть каталог «Мои документы», протокол файла можно указать как файл: /// C | / Мои документы / или как C: \ Мои документы. Кроме того, один '\' эквивалентен указанию корневого каталога на основном локальном диске. На большинстве компьютеров это C :.

Доступно для Microsoft Internet Explorer 3.0 или более поздней версии.

Примечание. Internet Explorer 6 с пакетом обновления 1 (SP1) больше не позволяет просматривать локальный компьютер из зоны Интернета. Например, если интернет-сайт содержит ссылку на локальный файл, Internet Explorer 6 SP1 отображает пустую страницу, когда пользователь нажимает на ссылку. Предыдущие версии Windows Internet Explorer следовали по ссылке на локальный файл.

Пример

В следующем примере демонстрируется четыре способа использования файлового протокола.

Копирование

//Specifying a drive and a file name. 

file:///C|/My Documents/ALetter.html

//Specifying only a drive and a path to browse the directory. 

file:///C|/My Documents/

//Specifying a drive and a directory using the command line representation of the directory location. 

C:\My Documents\

//Specifying only the directory on the local primary drive. 

\My Documents\

http://msdn.microsoft.com/en-us/library/aa767731

3 голосов
/ 01 мая 2009

Вы можете проверить эту ссылку , или вы можете попробовать использовать пути UNC.

0 голосов
/ 21 июля 2014

По крайней мере, с Chrome (я не знаю, что такое Firefox). Вы можете перетащить значок слева от URL-адреса в браузере в папку на рабочем столе, и он создаст файл, который будет работать как ярлык Интернета. .

Я пока не знаю, является ли формат файла универсальным, однако, похоже, Chrome знает, что с ним делать.

Созданный файл является .url файлом и содержит следующее:

[InternetShortcut] URL=http://www.accordingtothescriptures.org/prophecy/353prophecies.html

Вы можете заменить URL-адрес любым другим.

0 голосов
/ 22 мая 2014

Вставьте следующую ссылку непосредственно в событие нажатия кнопки ссылки, в противном случае используйте javascript для вызова кода за функцией

Protected Sub lnkOpen_Click(ByVal sender As Object, ByVal e As EventArgs) 
    System.Diagnostics.Process.Start(FilePath)
End Sub
0 голосов
/ 10 мая 2013

Если кто-то еще найдет эту тему, используя localhost в файловых URI - Internet Explorer будет действовать совершенно иначе, если имя хоста будет localhost или 127.0.0.1 - если вы используете реальное имя хоста, оно будет работать нормально (с доверенные сайты / интранет зона).

Еще одна большая разница между IE и FF - IE подходит для Uris, как file://server/share/file.txt, но FF требует дополнительных косых черт file:////server/share/file.txt.

...