diff options
| author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:17 -0500 |
|---|---|---|
| committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:17 -0500 |
| commit | da78a9e329e272dedb2400b79a3bdeebff387d47 (patch) | |
| tree | e6ef8aa7c43556f55ddfe031a01cf0a8fa271bfe /files/ko/web/api/navigator/registerprotocolhandler | |
| parent | 1109132f09d75da9a28b649c7677bb6ce07c40c0 (diff) | |
| download | translated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.tar.gz translated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.tar.bz2 translated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.zip | |
initial commit
Diffstat (limited to 'files/ko/web/api/navigator/registerprotocolhandler')
| -rw-r--r-- | files/ko/web/api/navigator/registerprotocolhandler/index.html | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/files/ko/web/api/navigator/registerprotocolhandler/index.html b/files/ko/web/api/navigator/registerprotocolhandler/index.html new file mode 100644 index 0000000000..1b146a356e --- /dev/null +++ b/files/ko/web/api/navigator/registerprotocolhandler/index.html @@ -0,0 +1,125 @@ +--- +title: Navigator.registerProtocolHandler() +slug: Web/API/Navigator/registerProtocolHandler +tags: + - API + - DOM + - Method + - Navigator + - Reference +translation_of: Web/API/Navigator/registerProtocolHandler +--- +<div>{{APIRef("HTML DOM")}}{{securecontext_header}}</div> + +<p><span class="seoSummary"><strong><code>Navigator.registerProtocolHandler()</code></strong> 메서드는 웹 사이트가 특정 {{glossary("URL")}} 스킴("프로토콜")을 열거나 처리할 수 있도록 등록합니다.</span> 이를테면, 이메일 사이트가 <code>mailto:</code> URL에, <abbr title="Voice over Internet Protocol, 인터넷 전화">VoIP</abbr> 사이트가 <code>tel:</code> URL에 자신을 등록할 때 사용할 수 있습니다.</p> + +<h2 id="구문">구문</h2> + +<pre class="syntaxbox">navigator.registerProtocolHandler(<var>protocol</var>, <var>url</var>, <var>title</var>);</pre> + +<h3 id="매개변수">매개변수</h3> + +<dl> + <dt><code>protocol</code></dt> + <dd>웹 사이트가 처리하고자 하는 프로토콜 문자열. 예컨대 SMS 문자 메시지를 처리하고자 한다면 <code>"sms"</code>를 전달하세요.</dd> + <dt><code>url</code></dt> + <dd>처리기의 URL. <strong>플레이스홀더로 사용할 <code>%s</code>를 반드시 포함</strong>해야 합니다. 실제 사용 시, <code>%s</code>에는 처리 대상 URL을 <a href="/ko/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent">이스케이프 처리</a>해 대입합니다. + <div class="note"><strong>참고:</strong> 처리기의 URL은 반드시 <code>http</code> 또는 <code>https</code> 스킴을 필요로 합니다. 일부 브라우저는 보안상 <code>https</code>를 요구하므로 <code>https</code>를 사용하는 편이 좋습니다.</div> + </dd> + <dt><code>title</code></dt> + <dd>사람이 읽을 수 있는 형태의 처리기 이름. 브라우저 설정 등 처리기 목록에서 <strong>사용자에게 보이는 이름</strong>입니다.</dd> +</dl> + +<h3 id="예외">예외</h3> + +<dl> + <dt><code>SecurityError</code></dt> + <dd>{{glossary("user agent", "사용자 에이전트")}}가 등록을 막았습니다. 다음 상황에서 발생할 수 있습니다. + <ul> + <li>등록하려는 스킴(프로토콜)이 유효하지 않습니다. 브라우저가 직접 처리하는 스킴을 등록하려 하면 발생합니다. (<code>https:</code>, <code>about:</code>, ...)</li> + <li>처리기 URL의 {{glossary("출처")}}가 API를 호출한 페이지 출처와 일치하지 않습니다.</li> + <li>브라우저가 보안 맥락에서의 <code>registerProtocolHandler()</code> 호출을 요구합니다.</li> + <li>브라우저가 처리기 URL의 HTTPS 사용을 요구합니다.</li> + </ul> + </dd> + <dt><code>SyntaxError</code></dt> + <dd>처리기 URL에 <code>%s</code> 플레이스홀더가 없습니다.</dd> +</dl> + +<h2 id="가능한_스킴">가능한 스킴</h2> + +<p>보안상의 이유로, <code>registerProtocolHandler()</code>가 등록할 수 있는 스킴은 제한적입니다.</p> + +<p><strong>사용자 지정 스킴</strong>은 다음 조건을 만족해야 합니다.</p> + +<ul> + <li>스킴이 <code>web+</code>로 시작합니다.</li> + <li><code>web+</code> 접두사 뒤에 다른 글자가 최소 하나 존재해야 합니다.</li> + <li>소문자 ASCII 문자로만 구성해야 합니다.</li> +</ul> + +<p>아래 {{anch("예제")}}에서 사용한 <code>web+burger</code>는 제약조건을 만족하는 사용자 지정 스킴입니다.</p> + +<p>그 외에는 다음 스킴을 등록할 수 있습니다.</p> + +<div class="threecolumns"> +<ul> + <li><code>bitcoin</code></li> + <li><code>geo</code></li> + <li><code>im</code></li> + <li><code>irc</code></li> + <li><code>ircs</code></li> + <li><code>magnet</code></li> + <li><code>mailto</code></li> + <li><code>mms</code></li> + <li><code>news</code></li> + <li><code>nntp</code></li> + <li><code>openpgp4fpr</code></li> + <li><code>sip</code></li> + <li><code>sms</code></li> + <li><code>smsto</code></li> + <li><code>ssh</code></li> + <li><code>tel</code></li> + <li><code>urn</code></li> + <li><code>webcal</code></li> + <li><code>wtai</code></li> + <li><code>xmpp</code></li> +</ul> +</div> + +<h2 id="예제">예제</h2> + +<p>사이트 주소가 <code>burgers.example.com</code>인 경우, 아래 코드로 <code>web+burger:</code> 스킴에 대한 처리기를 등록할 수 있습니다.</p> + +<pre class="brush: js">navigator.registerProtocolHandler("web+burger", + "https://burgers.example.com/?burger=%s", + "Burger handler");</pre> + +<p>이제, <code>web+burger:</code> 링크는 사용자를 <code>burgers.example.com</code>로 보내고, 자신의 URL을 <code>%s</code> 위치에 삽입합니다.</p> + +<p>이때, 예제 코드는 처리기 URL과 같은 {{glossary("출처")}}를 가져야 하므로 <code>https://burgers.example.com</code>의 페이지 안에서 호출해야 하며, 처리기 URL은 <code>http</code>/<code>https</code>를 사용해야 합니다.</p> + +<h2 id="명세">명세</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', 'system-state.html#custom-handlers', 'registerProtocolHandler()')}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Initial definition</td> + </tr> + </tbody> +</table> + +<h2 id="브라우저_호환성">브라우저 호환성</h2> + + + +<p>{{Compat("api.Navigator.registerProtocolHandler")}}</p> |
