aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/api/navigator/registerprotocolhandler/index.html
blob: 153bfca7fe5f75857aa65b5cdbd95f61efe6750d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
---
title: Navigator.registerProtocolHandler()
slug: Web/API/Navigator/registerProtocolHandler
translation_of: Web/API/Navigator/registerProtocolHandler
---
<p id="Summary">{{APIRef("HTML DOM")}}</p>

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

<p><span id="result_box" lang="ru"><span class="hps">По соображениям</span> <span class="hps">безопасности</span><span>,</span> <span class="hps">по умолчанию</span><span>,</span> <span class="hps">веб-сайты могут</span> <span class="hps">зарегистрировать только</span> <span class="hps">обработчики протокола</span> <span class="hps">для себя</span> <span class="hps">-</span> <span class="hps">домен</span> <span class="hps">и протокол</span> <span class="hps">обработчика</span> <span class="hps">должны совпадать с</span> текущим <span class="hps">сайтом.</span></span> Тем не менее, пользователи могут установить предпочтение в Firefox, разрешающее перекрёстную обработку веб-сайтов  в настройках <code>gecko.handlerService.allowRegisterFromDifferentHost</code> установив <code>true</code> в about:config.</p>

<p><span id="result_box" lang="ru"><span class="hps">Расширения могут</span> <span class="hps">регистрировать обработчики</span> <span class="hps">протоколов</span><span>, направленные</span> <span class="hps">другие сайты</span><span>: </span></span>см. "Смотрите также" раздел как использовать их с XPCOM.</p>

<h2 id="Syntax">Синтаксис</h2>

<pre class="eval">window.navigator.registerProtocolHandler(<em>protocol</em>, <em>uri</em>, <em>title</em>);
</pre>

<ul>
 <li><code>protocol</code> это протокол нуждающийся в обработке, записанный в виде строки.</li>
 <li><code>uri</code> это URI обработчика в виде строки. Вы можете включить "%s", что бы показать куда вставлять  выходящие URI документа для обработки.
  <div class="note">
  <p>Примечание: ДОЛЖНА быть <code>http </code>или <code>https </code>схема</p>
  </div>
 </li>
 <li>
  <p><code>title</code> это заголовок обработчика, представленный пользователю в виде строки.</p>
 </li>
</ul>

<h2 id="Example">Пример</h2>

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

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

<p><br>
 Это создаст обработчик, который разрешает <code>burger://</code>ссылки, направляющие пользователя на ваше веб-приложение, вставляя burger информацию <span id="result_box" lang="ru"><span>указанную в ссылке</span> <span class="hps">на</span> <span class="hps">URL.</span></span> <span id="result_box" lang="ru"><span class="hps">Напомним, что</span> <span class="hps">этот скрипт</span> <span class="hps">должен быть запущен</span> <span class="hps">с того же домена </span></span>(так и любой странице расположенной в <code>google.co.uk</code>) и второе, переданный аргумент должен быть <code>http </code>или <code>https</code> схемы (в этом примере это <code>http</code>) .</p>

<p><span id="result_box" lang="ru"><span>Пользователь</span> <span class="hps">будет уведомлен</span> <span class="hps">о</span> <span class="hps">регистрации этого</span> <span class="hps">протокола</span></span>, для примера смотрите на изображение ниже.</p>

<p><img alt="" src="https://mdn.mozillademos.org/files/9683/protocolregister.png" style="display: block; height: 401px; margin: 0px auto; width: 700px;"></p>

<div class="note">
<p><strong>Примечание</strong>: "<a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWebContentHandlerRegistrar#Getting_most_recent_window">Регистрация службы веб-почты, как mailto-обработчик</a>", показывает как сделать это в рамках XPCOM.</p>
</div>

<h2 id="Specification">Спецификация</h2>

<p>Specified by the WHATWG's <a class="external" href="http://whatwg.org/specs/web-apps/current-work/#custom-handlers">Web Applications 1.0 working draft</a> (HTML5).</p>

<h2 id="See_also">Совместимость с браузерами</h2>

<p>{{Compat("api.Navigator.registerProtocolHandler")}}</p>

<h2 id="See_also">Смотрите также</h2>

<ul>
 <li><a href="/en/Web-based_protocol_handlers" title="en/Web-based_protocol_handlers">Web-based protocol handlers</a></li>
 <li><a class="external" href="http://blog.mozilla.com/webdev/2010/07/26/registerprotocolhandler-enhancing-the-federated-web/">RegisterProtocolHandler Enhancing the Federated Web</a> at Mozilla Webdev</li>
 <li><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#whitelisted-scheme">Web Application APIs - Custom scheme and content handlers - Whitelisted schemes</a></li>
 <li><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWebContentHandlerRegistrar#Getting_most_recent_window">Register a webmail service as mailto handler</a> shows how to do <code>registerProtocolHandler</code> from XPCOM scope.</li>
 <li><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWebContentHandlerRegistrar#registerProtocolHandler">XPCOM Interface Reference &gt; nsIWebContentHandlerRegistrar &gt; registerContentHandler</a> - This shows how to use this function XPCOM scope</li>
</ul>

<p>{{ 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" } ) }}</p>