CB-14188: add beforeload event, catching navigation before it happens

This commit is contained in:
wvengen
2018-07-13 22:14:01 +02:00
parent 0ed0bf543b
commit 228703a63b
5 changed files with 133 additions and 14 deletions
+10 -1
View File
@@ -33,6 +33,7 @@
function InAppBrowser () {
this.channels = {
'beforeload': channel.create('beforeload'),
'loadstart': channel.create('loadstart'),
'loadstop': channel.create('loadstop'),
'loaderror': channel.create('loaderror'),
@@ -44,9 +45,17 @@
InAppBrowser.prototype = {
_eventHandler: function (event) {
if (event && (event.type in this.channels)) {
this.channels[event.type].fire(event);
if (event.type === 'beforeload') {
this.channels[event.type].fire(event, this._loadAfterBeforeload);
} else {
this.channels[event.type].fire(event);
}
}
},
_loadAfterBeforeload: function (strUrl) {
strUrl = urlutil.makeAbsolute(strUrl);
exec(null, null, 'InAppBrowser', 'loadAfterBeforeload', [strUrl]);
},
close: function (eventname) {
exec(null, null, 'InAppBrowser', 'close', []);
},