Bläddra i källkod

Adds uiLoaded event in iframe API, fired when all resources are loaded.

master
damencho 7 år sedan
förälder
incheckning
2478176f23
2 ändrade filer med 20 tillägg och 5 borttagningar
  1. 1
    0
      doc/api.md
  2. 19
    5
      modules/API/external/external_api.js

+ 1
- 0
doc/api.md Visa fil

@@ -27,6 +27,7 @@ Its constructor gets a number of options:
27 27
     * **interfaceConfigOverwrite**: (optional) JS object with overrides for options defined in [interface_config.js].
28 28
     * **noSSL**: (optional, defaults to true) Boolean indicating if the server should be contacted using HTTP or HTTPS.
29 29
     * **jwt**: (optional) [JWT](https://jwt.io/) token.
30
+    * **onload**: (optional) handler for the iframe onload event.
30 31
 
31 32
 Example:
32 33
 

+ 19
- 5
modules/API/external/external_api.js Visa fil

@@ -123,7 +123,8 @@ function parseArguments(args) {
123 123
             configOverwrite,
124 124
             interfaceConfigOverwrite,
125 125
             noSSL,
126
-            jwt
126
+            jwt,
127
+            onload
127 128
         ] = args;
128 129
 
129 130
         return {
@@ -134,7 +135,8 @@ function parseArguments(args) {
134 135
             configOverwrite,
135 136
             interfaceConfigOverwrite,
136 137
             noSSL,
137
-            jwt
138
+            jwt,
139
+            onload
138 140
         };
139 141
     case 'object': // new arguments format
140 142
         return args[0];
@@ -196,6 +198,8 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
196 198
      * used.
197 199
      * @param {string} [options.jwt] - The JWT token if needed by jitsi-meet for
198 200
      * authentication.
201
+     * @param {string} [options.onload] - The onload function that will listen
202
+     * for iframe onload event.
199 203
      */
200 204
     constructor(domain, ...args) {
201 205
         super();
@@ -207,7 +211,8 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
207 211
             configOverwrite = {},
208 212
             interfaceConfigOverwrite = {},
209 213
             noSSL = false,
210
-            jwt = undefined
214
+            jwt = undefined,
215
+            onload = undefined
211 216
         } = parseArguments(args);
212 217
 
213 218
         this._parentNode = parentNode;
@@ -218,7 +223,7 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
218 223
             noSSL,
219 224
             roomName
220 225
         });
221
-        this._createIFrame(height, width);
226
+        this._createIFrame(height, width, onload);
222 227
         this._transport = new Transport({
223 228
             backend: new PostMessageTransportBackend({
224 229
                 postisOptions: {
@@ -243,11 +248,13 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
243 248
      * parseSizeParam for format details.
244 249
      * @param {number|string} width - The with of the iframe. Check
245 250
      * parseSizeParam for format details.
251
+     * @param {Function} onload - The function that will listen
252
+     * for onload event.
246 253
      * @returns {void}
247 254
      *
248 255
      * @private
249 256
      */
250
-    _createIFrame(height, width) {
257
+    _createIFrame(height, width, onload) {
251 258
         const frameName = `jitsiConferenceFrame${id}`;
252 259
 
253 260
         this._frame = document.createElement('iframe');
@@ -258,6 +265,13 @@ export default class JitsiMeetExternalAPI extends EventEmitter {
258 265
         this._setSize(height, width);
259 266
         this._frame.setAttribute('allowFullScreen', 'true');
260 267
         this._frame.style.border = 0;
268
+
269
+        if (onload) {
270
+            // waits for iframe resources to load
271
+            // and fires event when it is done
272
+            this._frame.onload = onload;
273
+        }
274
+
261 275
         this._frame = this._parentNode.appendChild(this._frame);
262 276
     }
263 277
 

Laddar…
Avbryt
Spara