Переглянути джерело

Fixes #1027 Backwards compatibility fix for IE11

JC Brand 7 роки тому
батько
коміт
0a28e7aae4
4 змінених файлів з 20 додано та 9 видалено
  1. 1 1
      CHANGES.md
  2. 1 1
      src/converse-core.js
  3. 11 0
      src/polyfill.js
  4. 7 7
      tests/transpiled.html

+ 1 - 1
CHANGES.md

@@ -4,7 +4,6 @@
 
 - Avoid `eval` (via `_.template` from lodash).
 - Don't show bookmark toggles when PEP bookmarking not supported by the XMPP server.
-- Add LibreJS support
 
 ### Bugfixes
 
@@ -12,6 +11,7 @@
 - Bookmarks list and open rooms list weren't recreated after logging in for a 2nd time (without reloading the browser).
 - #1024 null reference on MUC Invite
 - #1025 OTR lock icon disappears
+- #1027 `new Event` not supported in IE11
 
 ## 3.3.3 (2018-02-14)
 

+ 1 - 1
src/converse-core.js

@@ -2051,6 +2051,6 @@
             'utils': u
         }
     };
-    window.dispatchEvent(new Event('converse-loaded'));
+    window.dispatchEvent(new CustomEvent('converse-loaded'));
     return window.converse;
 }));

+ 11 - 0
src/polyfill.js

@@ -1,3 +1,14 @@
+function CustomEvent ( event, params ) {
+    params = params || { bubbles: false, cancelable: false, detail: undefined };
+    var evt = document.createEvent( 'CustomEvent' );
+    evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );
+    return evt;
+}
+if ( typeof window.CustomEvent !== "function" ) {
+    CustomEvent.prototype = window.Event.prototype;
+    window.CustomEvent = CustomEvent;
+}
+
 if (!String.prototype.includes) {
   String.prototype.includes = function(search, start) {
         'use strict';

+ 7 - 7
tests/transpiled.html

@@ -4,15 +4,15 @@
 <head>
     <title>Converse.js Tests</title>
     <meta name="description" content="Converse.js: A chat client for your website" />
-    <link rel="shortcut icon" type="image/png" href="node_modules/jasmine-core/images/jasmine_favicon.png">
+    <link rel="shortcut icon" type="image/png" href="../node_modules/jasmine-core/images/jasmine_favicon.png">
 
-    <link rel="stylesheet" type="text/css" media="screen" href="node_modules/jasmine-core/lib/jasmine-core/jasmine.css">
-    <link rel="stylesheet" type="text/css" media="screen" href="css/jasmine.css">
-    <link type="text/css" rel="stylesheet" media="screen" href="css/theme.css" />
-    <link type="text/css" rel="stylesheet" media="screen" href="css/converse.css" />
+    <link rel="stylesheet" type="text/css" media="screen" href="../node_modules/jasmine-core/lib/jasmine-core/jasmine.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="../css/jasmine.css">
+    <link type="text/css" rel="stylesheet" media="screen" href="../css/theme.css" />
+    <link type="text/css" rel="stylesheet" media="screen" href="../css/converse.css" />
 
-    <script src="src/config.js"></script>
-    <script data-main="tests/runner-transpiled" src="node_modules/requirejs/require.js"></script>
+    <script src="../src/config.js"></script>
+    <script data-main="runner-transpiled" src="../node_modules/requirejs/require.js"></script>
 
     <style>
         .tests-brand-heading {