Which version of jjs are you using? (jjs -version) — Jim
> On Dec 1, 2015, at 1:11 AM, Chris Root <hamme...@gmail.com> wrote: > > I'm trying to get two way communication working for a browser project in > Nashorn and I'm having trouble implementing an HTML to host callback. I > tried this in Java using setMember and it works perfectly, but I can't seem > to duplicate it with Nashorn. Since using setMember didn't work I decided > to use the approach below but still no luck. > > I don't want to pick up objects from the window object, I want to plant a > function in window that will call Nashorn code. Again getting this to work > in Java was no problem. I followed the instructions on this page > > https://blogs.oracle.com/nashorn/entry/porting_from_the_browser_to > > I have the jsObject wrapper shown in the article and it works fine. but the > code below doesn't work. This is the relevant snip from the load handler. > > This.engine.loadWorker.stateProperty().addListener(new ChangeListener() { > changed: function(value, oldState, newState) { > switch(newState){ > case Worker.State.SUCCEEDED: > This.document = wrap(This.engine.executeScript("document")); > This.window = wrap(This.engine.executeScript("window")); > This.window.hello = function(){ > This.hello(); > } > > As you can see I planted a function on the window called hello, which calls > a method of the webview wrapper (same wrapper as in the article) called > hello() > > This.hello = function(){ > print("****** hello it worked *******"); > } > > I then set up the alert handler > > This.engine.onAlert = new javafx.event.EventHandler() { > handle: function(evt) { > print(evt.data) > } > }; > > and then finally loaded the HTML file below into the webview. > > <html> > <head> > <title>Nashorn Browser</title> > > <script type="text/Javascript"> > function sayhello(){ > try{ > hello(); > }catch(e){ > alert(e.message) > } > } > </script> > > </head> > <body> > <a href="#" onclick="sayhello(); return false;">Say Hello</a> > </body> > </html> > > What I get back in the console is. > > JavaRuntimeObject is not a function (evaluating 'window.hello()') > > Is there any way to establish a callback into my Nashorn code the way it > can be done in Java?