Не удается заставить registerProtocolHandler работать на локальном хосте - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь зарегистрировать пользовательский обработчик протокола на веб-странице, которая обслуживается с http://localhost: 8080

Это мой код:

<script>
     navigator.registerProtocolHandler("web+did", "http://localhost:8080?did=%s", "did search");
</script>

<a href="web+did://123456">Search DID</a>

но когда я нажимаю на ссылку, сетевой обозреватель просто показывает запрос как "отмененный", почему он не отправляется как "http://localhost: 8080? Did = 123456 "?

1 Ответ

0 голосов
/ 07 апреля 2020

В Firefox, navigator.registerProtocolHandler будет работать только в том случае, если он включен в оператор window.onload или если он выполняется в функции, которая вызывается явным образом при каком-либо взаимодействии с пользователем (то есть при нажатии на кнопку, которая вызывает функция, которая регистрирует обработчик протокола).

В Chrome, navigator.registerProtocolHandler не может быть выполнено автоматически, его необходимо выполнить в функции, которая вызывается при каком-либо взаимодействии с пользователем. У меня нет ссылок на документацию, подтверждающую это, я обнаружил это только в результате собственных экспериментов.

...