cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Scott Seitz (JIRA)" <>
Subject [jira] [Commented] (CB-9445) executeScript callbacks not working for iOS
Date Tue, 11 Aug 2015 22:35:47 GMT


Scott Seitz commented on CB-9445:

It took me a little while to isolate this, but I found the test that causes the problem. 
Essentially, if you add a loadstart event with a callback as well, only the first callback
ever executes.
var ref ='', '_blank', 'location=yes');
ref.addEventListener('loadstart', function() {
	ref.executeScript({code: "some_var = 'some value';"},function(){alert('loadstart callback');});
ref.addEventListener('loadstop', function() {
	ref.executeScript({code: "alert('loadstop code:');"},function(){alert('loadstop callback');});
In fact, if you set this code to trigger from a click event so that you can run it more than
once, you'll see the following behavior on iOS:
First run -- 'loadstart callback' alert and the 'loadstop code:' alert and nothing else
Subsequent runs -- 'loadstop code:' alert and nothing else

On Android, it works just like you would expect.  I didn't catch this before, because in my
original code, I had a loadstart event that didn't need to do anything on the callback, so
I didn't realize it wasn't triggering.  Do we have a bug?

> executeScript callbacks not working for iOS
> -------------------------------------------
>                 Key: CB-9445
>                 URL:
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS, Plugin InAppBrowser
>    Affects Versions: 5.1.1
>         Environment: Cordova 5.1.1 (CLI), ios 3.8.0, android 4.0.2, cordova-plugin-inappbrowser
1.0.1 (NPM)
>            Reporter: Scott Seitz
>            Assignee: jcesarmobile
> Can someone please check to see if they are encountering the same problem I am in the
environment I've listed? (latest released builds of everything I think)
> I open an inappbrowser window and then run an executeScript command using "code:" (not
"file:").  Everything works fine on Android, but on iOS, it simply will NOT fire the callback
function after executing the injected code.  Make the "code:" as simple as you like to test
it and see if you can get a callback to fire.  I've dumbed it down as much as possible and
can't get one to fire.  I know that all instances of code I've injected have run fine in the
iab by using the console (against the iab) to check for the variables I was creating in the
code.  I can't even get a callback to fire that doesn't expect a parameter to be passed back...
> Many thanks,
> Scott

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message