JavaScript - обработчики протокола зарегистрированы, но чтение не удается из реестра Windows
Я сделал следующее:
1) В Windows 7: в реестре: HKEY_CLASSES_ROOT\PROTOCOLS\Handler
У меня есть пользовательский протокол вызовов: stackru
(копируется аналогичным образом в реестр, как и другие протоколы mailto
или же ftp
так далее)
2) Откройте в IE образец: http://jsfiddle.net/L528u/
<a href="stackru:talking" id="link1">CLICK IT</a>
<button onclick="alert(document.getElementById('link1').protocolLong);">CHECK - IF - Protocol available or not</button>
3) при нажатии на кнопку из IE, чтобы обнаружить протокол: стек переполнения он терпит неудачу
Я всегда получаю предупреждение: "Неизвестный протокол", но когда я пытаюсь обнаружить протоколы, такие как: ftp, mailto, это работает
<a href="ftp:talking" id="link1">CLICK IT</a>
<button onclick="alert(document.getElementById('link1').protocolLong);">CHECK - IF - Protocol available or not</button>
Вопрос: Может ли кто-нибудь сказать мне, что не хватает в записи реестра для активации нового протокола? "stackru" (где работает ftp, mailto, но не stackru)
2 ответа
Internet Explorer отображает только встроенные протоколы через protocolLong. Вы ничего не можете внести в реестр, чтобы разрешить обнаружение протоколов приложений через Интернет.
Internet Explorer 10 (и более поздние версии) в Windows 8 (и более поздних версиях, обратите внимание, что Windows 7 не включена! См. MsLaunchUri, недоступный в IE11) реализует новый метод с успехом и параметрами обратного вызова с ошибкой, которые могут помочь в ситуациях вызова обработчика протокола - navigator.msLaunchUri(uri, successCallback, noHandlerCallback)
, Для получения дополнительной информации см. http://msdn.microsoft.com/en-us/library/ie/jj154912(v=vs.85).aspx