From 338760f9522deee96406e4b742363276c4fa34ed Mon Sep 17 00:00:00 2001 From: Hiroshi Ichikawa Date: Sun, 15 Dec 2013 22:09:04 +0900 Subject: Using typeof(MessageEvent) to switch two ways to create MessageEvent. --- web_socket.js | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/web_socket.js b/web_socket.js index c74a485..6817aa9 100644 --- a/web_socket.js +++ b/web_socket.js @@ -203,21 +203,19 @@ }; WebSocket.prototype.__createMessageEvent = function(type, data) { - if (document.createEvent && window.MessageEvent && !window.opera) { + if (window.MessageEvent && typeof(MessageEvent) == "function" && !window.opera) { + return new MessageEvent("message", { + "view": window, + "bubbles": false, + "cancelable": false, + "data": data + }); + } else if (document.createEvent && window.MessageEvent && !window.opera) { var event = document.createEvent("MessageEvent"); - if (event.initMessageEvent) { // IE does not accept 'new MessageEvent' so this has to stay - event.initMessageEvent("message", false, false, data, null, null, window, null); - } else if (event.initEvent) { // needed for FF 26 and possible others soon... - var event = new MessageEvent('message', { - 'view': window, - 'bubbles': false, - 'cancelable': false, - 'data': data - }); - } + event.initMessageEvent("message", false, false, data, null, null, window, null); return event; } else { - // IE and Opera, the latter one truncates the data parameter after any 0x00 bytes. + // Old IE and Opera, the latter one truncates the data parameter after any 0x00 bytes. return {type: type, data: data, bubbles: false, cancelable: false}; } }; -- cgit v1.2.1