--- title: Navigator.registerProtocolHandler() slug: Web/API/Navigator/registerProtocolHandler translation_of: Web/API/Navigator/registerProtocolHandler ---
{{APIRef("HTML DOM")}}
Позволяет веб-сайтам зарегистрировать себя как возможный обработчик для конкретных протоколов.
По соображениям безопасности, по умолчанию, веб-сайты могут зарегистрировать только обработчики протокола для себя - домен и протокол обработчика должны совпадать с текущим сайтом. Тем не менее, пользователи могут установить предпочтение в Firefox, разрешающее перекрёстную обработку веб-сайтов в настройках gecko.handlerService.allowRegisterFromDifferentHost
установив true
в about:config.
Расширения могут регистрировать обработчики протоколов, направленные другие сайты: см. "Смотрите также" раздел как использовать их с XPCOM.
window.navigator.registerProtocolHandler(protocol, uri, title);
protocol
это протокол нуждающийся в обработке, записанный в виде строки.uri
это URI обработчика в виде строки. Вы можете включить "%s", что бы показать куда вставлять выходящие URI документа для обработки.
Примечание: ДОЛЖНА быть http
или https
схема
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
) .
Пользователь будет уведомлен о регистрации этого протокола, для примера смотрите на изображение ниже.
Примечание: "Регистрация службы веб-почты, как mailto-обработчик", показывает как сделать это в рамках XPCOM.
Specified by the WHATWG's Web Applications 1.0 working draft (HTML5).
{{Compat("api.Navigator.registerProtocolHandler")}}
registerProtocolHandler
from XPCOM scope.{{ languages( { "es": "es/DOM/window.navigator.registerProtocolHandler", "fr": "fr/DObrM/window.navigator.registerProtocolHandler", "ja": "ja/DOM/window.navigator.registerProtocolHandler", "pl": "pl/DOM/window.navigator.registerProtocolHandler", "ko": "ko/DOM/window.navigator.registerProtocolHandler" } ) }}