aboutsummaryrefslogtreecommitdiff
path: root/files/ko/web/api/customevent/index.html
blob: 782f81ba74ae400c6ae8522191fb0e573879a810 (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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
---
title: CustomEvent
slug: Web/API/CustomEvent
tags:
  - API
  - DOM
  - Interface
  - NeedsCompatTable
  - NeedsExample
  - Reference
translation_of: Web/API/CustomEvent
---
<p>{{APIRef("DOM")}}<strong><code>CustomEvent</code></strong> 인터페이스는 어플리케이션의 어떤 목적에 의해 초기화된 이벤트를 나타냅니다.</p>

<p>{{AvailableInWorkers}}</p>

<h2 id="생성자">생성자</h2>

<dl>
 <dt>{{domxref("CustomEvent.CustomEvent", "CustomEvent()")}}</dt>
 <dd><code>CustomEvent</code> 를 생성합니다.</dd>
</dl>

<h2 id="프로퍼티">프로퍼티</h2>

<dl>
 <dt>{{domxref("CustomEvent.detail")}} {{readonlyinline}}</dt>
 <dd>이벤트 초기화에 전달되는 모든 데이터.</dd>
</dl>

<p><em>이 인터페이스는 그 부모인 </em>{{domxref("Event")}} 로부터 프로퍼티를 상속받습니다:</p>

<p>{{Page("/en-US/docs/Web/API/Event", "Properties")}}</p>

<h2 id="메소드">메소드</h2>

<dl>
 <dt>{{domxref("CustomEvent.initCustomEvent()")}} {{deprecated_inline}}</dt>
 <dd>
 <p><code>CustomEvent</code> 객체를 초기화합니다. 이벤트가 이미 디스패치되었다면, 이 메소드는 아무것도 하지 않습니다.</p>
 </dd>
</dl>

<p><em>이 인터페이스는 그 부모인 </em>{{domxref("Event")}} 로부터 메소드를 상속받습니다:</p>

<p>{{Page("/ko/docs/Web/API/Event", "Methods")}}</p>

<h2 id="명세">명세</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">명세</th>
   <th scope="col">상태</th>
   <th scope="col">코멘트</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('DOM WHATWG','#interface-customevent','CustomEvent')}}</td>
   <td>{{Spec2('DOM WHATWG')}}</td>
   <td>초기 정의.</td>
  </tr>
 </tbody>
</table>

<h2 id="브라우저_호환성">브라우저 호환성</h2>

<p> </p>



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

<h2 id="권한_코드에서_비권한_코드로_실행">권한 코드에서 비권한 코드로 실행</h2>

<p>CustomEvent 를 권한 코드(예, 확장 기능)에서 비권한 코드(예, 웹페이지)로 실행할 때, 보안 문제를 고려해야 합니다. Firefox 와 다른 Gecko 어플리케이션은 한 컨텍스트에서 생성된 객체가 다른 곳에서 바로 사용되는 것을 제한하여 보안상의 문제를 자동으로 방지하지만, 이는 여러분의 코드가 예상한대로 실행되는 것을 제한하기도 합니다.</p>

<p>CustomEvent 객체는 반드시 동일한 <a href="/ko/docs/XUL/window"></a>에서 생성해야 합니다. CustomEvent 의 <code>detail</code> 속성도 동일하게 제한됩니다. String 과 Array 값은 제한 없이 그 컨텐츠를 읽을 수 있지만, 커스텀 객체는 그렇지 않습니다. 커스텀 객체를 사용할 때, <a href="/ko/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.cloneInto">Components.utils.cloneInto()</a> 를 사용해 컨텐츠 스크립트에서 읽을 수 있는 객체의 속성을 정의해야 합니다.</p>

<pre class="brush: js">// doc 은 컨텐츠 다큐먼트의 참조입니다
function dispatchCustomEvent(doc) {
  var eventDetail = Components.utils.cloneInto({foo: 'bar'}, doc.defaultView);
  var myEvent = doc.defaultView.CustomEvent("mytype", eventDetail);
  doc.dispatchEvent(myEvent);
}</pre>

<p>함수 노출은 크롬 권한으로 실행하기 위한 컨텐츠 스크립트를 허용하여 보안 취약점에 열려있다는 점을 주의하시기 바랍니다.</p>

<h2 id="함께_보기">함께 보기</h2>

<ul>
 <li><a href="https://developer.mozilla.org/ko/docs/Archive/Add-ons/Interaction_between_privileged_and_non-privileged_pages" title="/en-US/docs/Code_snippets/Interaction_between_privileged_and_non-privileged_pages">Interaction between privileged and non-privileged pages</a></li>
 <li><a href="/ko/docs/Web/API/Window/postMessage" title="/en-US/docs/Web/API/window.postMessage">Window.postMessage</a></li>
 <li><a href="/ko/docs/Web/Guide/Events/Creating_and_triggering_events">이벤트 생성 및 트리거</a></li>
</ul>