@@ -34,29 +34,24 @@ EventManager.triggerEvent("drawImage-Handler", "someEventName", "param1", "param
3434Registers a named EventHandler. Event handlers are created using the call:
3535` EventDispatcher.makeEventDispatcher(Command.prototype); `
3636
37- Type: [ function] [ 1 ]
38-
39- ### Parameters
40-
41- * ` handlerName ` ** [ string] [ 2 ] ** a unique name of the handler.
42- * ` eventDispatcher ` ** [ object] [ 3 ] ** An EventDispatcher that will be used to trigger events.
43-
44- ### Examples
45-
4637To register a close dialogue event handler in an extension:
47-
48- ``` javascript
4938// in close-dialogue.js module winthin the extension, do the following:
5039const EventDispatcher = brackets.getModule("utils/EventDispatcher"),
5140EventDispatcher.makeEventDispatcher(exports);
5241const EventManager = brackets.getModule("utils/EventManager");
5342
54- // Note: for event handler names, please change the < extensionName> to your extension name
43+ // Note: for event handler names, please change the ` extensionName ` to your extension name
5544// to prevent collisions. EventHandlers starting with ` ph- ` and ` br- ` are reserved as system handlers
5645// and not available for use in extensions.
57- EventManager .registerEventHandler (" < extensionName> -closeDialogueHandler" , exports );
46+ EventManager.registerEventHandler("` extensionName ` -closeDialogueHandler", exports);
5847// Once the event handler is registered, see triggerEvent API on how to raise events
59- ```
48+
49+ Type: [ function] [ 1 ]
50+
51+ ### Parameters
52+
53+ * ` handlerName ` ** [ string] [ 2 ] ** a unique name of the handler.
54+ * ` eventDispatcher ` ** [ object] [ 3 ] ** An EventDispatcher that will be used to trigger events.
6055
6156Returns ** [ boolean] [ 4 ] **
6257
@@ -76,6 +71,11 @@ Returns **[boolean][4]**
7671
7772Triggers an event on the named event handler.
7873
74+ To trigger an event to the ` closeDialogue ` event handler registered above
75+ // anywhere in code, do the following:
76+ const EventManager = brackets.getModule("utils/EventManager");
77+ EventManager.triggerEvent("closeDialogueHandler", "someEvent", "param1", "param2", ...);
78+
7979Type: [ function] [ 1 ]
8080
8181### Parameters
@@ -84,16 +84,6 @@ Type: [function][1]
8484* ` eventName ` the event name as recognised by the handler. this is usually a string.
8585* ` eventParams ` ** ...any** Can be a comma seperated list of args or a single argument.
8686
87- ### Examples
88-
89- To trigger an event to the ` closeDialogue ` event handler registered above
90-
91- ``` javascript
92- // anywhere in code, do the following:
93- const EventManager = brackets .getModule (" utils/EventManager" );
94- EventManager .triggerEvent (" closeDialogueHandler" , " someEvent" , " param1" , " param2" , ... );
95- ```
96-
9787## onmessage
9888
9989This function acts as a secure event handler for all 'message' events targeted at the window object.
@@ -103,43 +93,33 @@ Instead of directly overriding window.onmessage, extensions or other elements th
10393listen to these events should register their named eventHandler with ` EventManager ` .
10494
10595By default, only origins part of ` window.Phoenix.TRUSTED_ORIGINS ` are whitelisted. If your extension is
106- bringing in a cross-origin ifrmame say ` http://mydomain.com ` , you should add it to the whitelist by setting
107- ` window.Phoenix.TRUSTED_ORIGINS["http://mydomain.com"]= true; `
96+ bringing in a cross-origin ifrmame say \[ ` http://mydomain.com ` ] , you should add it to the whitelist by setting
97+ ` window.Phoenix.TRUSTED_ORIGINS ["http://mydomain.com"] = true; `
10898
10999### Parameters
110100
111101* ` event ` ** [ MessageEvent] [ 6 ] ** The 'message' event targeted at the window object. The event's
112- 'data' property should have a 'handlerName' and ` eventName ` property that will be triggered in phcode.
113-
114- ### Examples
115-
116- ``` javascript
117- // We will try to communicate within an embedded iframe and an extension
118-
119- // In your extension in phoenix, register a handlerName to process a new kind of event.
120- const EventDispatcher = brackets .getModule (" utils/EventDispatcher" ),
121- EventDispatcher .makeEventDispatcher (exports );
122- const EventManager = brackets .getModule (" utils/EventManager" );
123- // Note: for event handler names, please change the <extensionName> to your extension name
124- // to prevent collisions. EventHandlers starting with `ph-` and `br-` are reserved as system handlers
125- // and not available for use in extensions.
126- window .Phoenix .TRUSTED_ORIGINS [" http://mydomain.com" ]= true ;
127- EventManager .registerEventHandler (" <extensionName>-iframeMessageHandler" , exports );
128- exports .on (" iframeHelloEvent" , function (_ev , event ){
129- console .log (event .data .message );
130- });
131-
132- // Now from your iframe, send a message to the above event handler using:
133- window .parent .postMessage ({
134- handlerName: " <extensionName>-iframeMessageHandler" ,
102+ 'data' property should have a 'handlerName' and ` eventName ` property that will be triggered in phcode.// We will try to communicate within an embedded iframe and an extension// In your extension in phoenix, register a handlerName to process a new kind of event.
103+ const EventDispatcher = brackets.getModule("utils/EventDispatcher"),
104+ EventDispatcher.makeEventDispatcher(exports);
105+ const EventManager = brackets.getModule("utils/EventManager");
106+ // Note: for event handler names, please change the ` extensionName ` to your extension name
107+ // to prevent collisions. EventHandlers starting with ` ph- ` and ` br- ` are reserved as system handlers
108+ // and not available for use in extensions.
109+ window.Phoenix.TRUSTED_ORIGINS \[ "[ http://mydomain.com ] [ 7 ] "] = true;
110+ EventManager.registerEventHandler("` extensionName ` -iframeMessageHandler", exports);
111+ exports.on("iframeHelloEvent", function(\_ ev, event){
112+ console.log(event.data.message);
113+ });// Now from your iframe, send a message to the above event handler using:
114+ window.parent.postMessage({
115+ handlerName: "` extensionName ` -iframeMessageHandler",
135116 eventName: "iframeHelloEvent",
136117 message: "hello world"
137- }, ' *' );
138- // `you should replace * with the trusted domains list in production for security.` See how this can be
139- // done securely with this example: https://github.com/phcode-dev/phcode.live/blob/6d64386fbb9d671cdb64622bc48ffe5f71959bff/docs/virtual-server-loader.js#L43
140- // Abstract is that, pass in the parentOrigin as a query string parameter in iframe, and validate it against
141- // a trusted domains list in your iframe.
142- ```
118+ }, '\* ');
119+ // ` you should replace * with the trusted domains list in production for security. ` See how this can be
120+ // done securely with this example: [ https://github.com/phcode-dev/phcode.live/blob/6d64386fbb9d671cdb64622bc48ffe5f71959bff/docs/virtual-server-loader.js#L43 ] [ 8 ]
121+ // Abstract is that, pass in the parentOrigin as a query string parameter in iframe, and validate it against
122+ // a trusted domains list in your iframe.
143123
144124[ 1 ] : https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
145125
@@ -152,3 +132,7 @@ window.parent.postMessage({
152132[ 5 ] : https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
153133
154134[ 6 ] : https://developer.mozilla.org/docs/Web/API/MessageEvent
135+
136+ [ 7 ] : http://mydomain.com
137+
138+ [ 8 ] : https://github.com/phcode-dev/phcode.live/blob/6d64386fbb9d671cdb64622bc48ffe5f71959bff/docs/virtual-server-loader.js#L43
0 commit comments