|
@@ -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
|
|