Navigator.registerProtocolHandler()

Позволяет веб-сайтам зарегистрировать себя как возможный обработчик для конкретных протоколов.

По соображениям безопасности, по умолчанию, веб-сайты могут зарегистрировать только обработчики протокола для себя - домен и протокол обработчика должны совпадать с текущим сайтом. Тем не менее, пользователи могут установить предпочтение в Firefox, разрешающее перекрёстную обработку веб-сайтов в настройках gecko.handlerService.allowRegisterFromDifferentHost установив true в about:config.

Расширения могут регистрировать обработчики протоколов, направленные другие сайты: см. "Смотрите также" раздел как использовать их с XPCOM.

Синтаксис

window.navigator.registerProtocolHandler(protocol, uri, title);
  • protocol это протокол нуждающийся в обработке, записанный в виде строки.
  • uri это URI обработчика в виде строки. Вы можете включить "%s", что бы показать куда вставлять выходящие URI документа для обработки.

    Примечание: Обработчик URK должен использовать схему https. Старые браузеры также поддерживают http.

  • title это заголовок обработчика, представленный пользователю в виде строки.

Пример

Если ваше веб-приложение находится по адресу http://www.google.co.uk, вы можете зарегистрировать обработчик протокола и привязать обращение к нему "burger", как это:

navigator.registerProtocolHandler("burger",
                                  "http://www.google.co.uk/?uri=%s",
                                  "Burger handler");

Это создаст обработчик, который разрешает burger://ссылки, направляющие пользователя на ваше веб-приложение, вставляя burger информацию указанную в ссылке на URL. Напомним, что этот скрипт должен быть запущен с того же домена (так и любой странице расположенной в google.co.uk) и второе, переданный аргумент должен быть http или https схемы (в этом примере это http) .

Пользователь будет уведомлен о регистрации этого протокола, для примера смотрите на изображение ниже.

Спецификации

Specified by the WHATWG's Web Applications 1.0 working draft (HTML5).

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также