Как определить, действителен ли протокол в 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 найти все различные обработчики протокола, установленные ОС.
Итак, другими словами: нет...