Как определить, действителен ли протокол в Javascript

Возможный дубликат:
Как определить обработчики протоколов браузера?

Определенное программное обеспечение (не на основе браузера) устанавливает собственный протокол при его установке. Таким образом, если программное обеспечение установлено в системе, поместите ссылку, которая выглядит как

<a href="mycustomprotocol:///foobar">Launch the program!</a> 

на веб-странице запускает программное обеспечение при нажатии (после выставления предупреждения, конечно).

Если программное обеспечение не установлено, я хочу динамически изменить элемент, чтобы браузер не пытался его запустить.

Есть ли способ в javascript, чтобы определить, является ли протокол действительным? Хотелось бы, чтобы он работал хотя бы в Firefox, IE, Chrome и Safari.

Спасибо

3 ответа

Решение

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

Вы можете попытаться перехватить ошибку в событии window.onError или a.onError, если оно поддерживается, вместо этого используйте javascript для перехода к альтернативному URL.

Все, что у вас есть доступ в JavaScript navigator.plugins который скажет вам, какие плагины установлены. Проблема заключается в том, что браузер передает протокол в ОС для обработки, если он не знает, как его обрабатывать сам, и вы не можете с помощью javascript найти все различные обработчики протокола, установленные ОС.

Итак, другими словами: нет...

Другие вопросы по тегам