Skip to content

Commit 338760f

Browse files
committed
Using typeof(MessageEvent) to switch two ways to create MessageEvent.
1 parent 9c755f9 commit 338760f

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

web_socket.js

+10-12
Original file line numberDiff line numberDiff line change
@@ -203,21 +203,19 @@
203203
};
204204

205205
WebSocket.prototype.__createMessageEvent = function(type, data) {
206-
if (document.createEvent && window.MessageEvent && !window.opera) {
206+
if (window.MessageEvent && typeof(MessageEvent) == "function" && !window.opera) {
207+
return new MessageEvent("message", {
208+
"view": window,
209+
"bubbles": false,
210+
"cancelable": false,
211+
"data": data
212+
});
213+
} else if (document.createEvent && window.MessageEvent && !window.opera) {
207214
var event = document.createEvent("MessageEvent");
208-
if (event.initMessageEvent) { // IE does not accept 'new MessageEvent' so this has to stay
209-
event.initMessageEvent("message", false, false, data, null, null, window, null);
210-
} else if (event.initEvent) { // needed for FF 26 and possible others soon...
211-
var event = new MessageEvent('message', {
212-
'view': window,
213-
'bubbles': false,
214-
'cancelable': false,
215-
'data': data
216-
});
217-
}
215+
event.initMessageEvent("message", false, false, data, null, null, window, null);
218216
return event;
219217
} else {
220-
// IE and Opera, the latter one truncates the data parameter after any 0x00 bytes.
218+
// Old IE and Opera, the latter one truncates the data parameter after any 0x00 bytes.
221219
return {type: type, data: data, bubbles: false, cancelable: false};
222220
}
223221
};

0 commit comments

Comments
 (0)