I have put some calls in a row for ExecuteScriptSync with “console.log(‘adding CSS’)”.
The function takes about 20 seconds to return to the debugger.
ErrCode = -1; result is blank as expected.
Is a return from JS needed?
Thanks in advance!
I could solve this by using ExecuteScript with counted up variable names…
We have a 60 second timeout, I think.
So if the JavaScript doesn’t return quickly, the plugin will return with no result and error code = -1.
Thanks a lot for the info!
So, return needed.
I can’t get the result immediately back; “1 + 2” nor “(() => { return {Test:1}})()” does work.
Have to switch back to ExecuteScript until sync function does work.
I just tried our example and put this in a button’s action event:
Sub Action() Handles Action
Dim error As Integer
Dim v As Variant = web.ExecuteScriptSync("1+2", error)
MsgBox Str(Error)+": "+v.StringValue
End Sub
and this works fine here. Not sure what’s different for you.
Anyway, async is usually better. I prefer sync only for quick things like querying a property.
The problem is, that ExecuteScriptSync does not work without begin triggered by an event.
I use the event NavigationsCompleted to fill up the empty HTML page with CSS/JS.
This works seemless with ExecuteScript.
Then, when I instead use ExecuteScriptSync, the timeout is used, regardless what’s being returned.
Thanks a lot!