--- title: CustomEvent slug: Web/API/CustomEvent tags: - API - DOM - Interface - NeedsCompatTable - NeedsExample - Reference translation_of: Web/API/CustomEvent ---

{{APIRef("DOM")}}CustomEvent 인터페이스는 어플리케이션의 어떤 목적에 의해 초기화된 이벤트를 나타냅니다.

{{AvailableInWorkers}}

생성자

{{domxref("CustomEvent.CustomEvent", "CustomEvent()")}}
CustomEvent 를 생성합니다.

프로퍼티

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

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

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

메소드

{{domxref("CustomEvent.initCustomEvent()")}} {{deprecated_inline}}

CustomEvent 객체를 초기화합니다. 이벤트가 이미 디스패치되었다면, 이 메소드는 아무것도 하지 않습니다.

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

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

명세

명세 상태 코멘트
{{SpecName('DOM WHATWG','#interface-customevent','CustomEvent')}} {{Spec2('DOM WHATWG')}} 초기 정의.

브라우저 호환성

 

{{Compat("api.CustomEvent")}}

권한 코드에서 비권한 코드로 실행

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

CustomEvent 객체는 반드시 동일한 에서 생성해야 합니다. CustomEvent 의 detail 속성도 동일하게 제한됩니다. String 과 Array 값은 제한 없이 그 컨텐츠를 읽을 수 있지만, 커스텀 객체는 그렇지 않습니다. 커스텀 객체를 사용할 때, Components.utils.cloneInto() 를 사용해 컨텐츠 스크립트에서 읽을 수 있는 객체의 속성을 정의해야 합니다.

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

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

함께 보기