반응형
맞춤 이벤트를 통해 추가 데이터를 전달하는 방법이 있습니까?
두 개의 자동 사용자 스크립트간에 데이터를 전달해야합니다. 이상적으로는 unsafeWindow
객체를 건드리지 않고 사용자 지정 이벤트를 사용하는 것이 좋은 방법이라고 생각했습니다. 나는 다음과 같은 것을 생각했다 (예제에서 MSIE 모델은 무시하자).
addEventListener("customEvent", function(e) {
alert(e.data);
});
var custom = document.createEvent("HTMLEvents");
custom.initEvent("customEvent", true, true);
custom.data = "Some data...";
dispatchEvent(custom);
이것은 표준 자바 스크립트 환경과 하나의 사용자 스크립트 내에서 잘 작동하지만 이벤트가 사용자 스크립트에 의해 시작되어 외부 또는 다른 사용자 스크립트 내부에서 포착되면 data
속성은 undefined
크롬에 있습니다. 전달 된 데이터를에 저장할 수 있다고 생각 sessionStorage
하지만 매끄럽지 않습니다. 다른 우아한 해결책, 신사 숙녀 여러분? 완벽이 필요하고 달성 할 수 있습니다.
예, MessageEvent
또는 CustomEvent
.
사용 예 :
//Listen for the event
window.addEventListener("MyEventType", function(evt) {
alert(evt.detail);
}, false);
//Dispatch an event
var evt = new CustomEvent("MyEventType", {detail: "Any Object Here"});
window.dispatchEvent(evt);
더 자세한 정보를 가진 객체를 속성으로 전달합니다.
var event = new CustomEvent('build', { 'detail1': "something", detail2: "something else" });
function eventHandler(e) {
log('detail1: ' + e.detail.detail1);
log('detail2: ' + e.detail.detail2);
}
https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events
반응형
'Development Tip' 카테고리의 다른 글
사용자 지정 컨테이너보기 컨트롤러에 포함 된 콘텐츠는 탐색 모음 아래에 있습니다. (0) | 2021.01.08 |
---|---|
MSBuild에 "VCTargetsPath"속성에 대한 값이 없습니다. (0) | 2021.01.07 |
Java의 String.format () 및 16 진수 (0) | 2021.01.07 |
자바 스크립트에 PHP 에코 / 인쇄가 있습니까? (0) | 2021.01.07 |
파이프와 소켓의 차이점은 무엇입니까? (0) | 2021.01.07 |