Hey, when the var tcoord is declared and/or set its value, how do you do it? If you bring up the message watcher, after grabbing your return value it once, does it continue spamming your livecode handler? I have the inkling of a theory..
On Wed, Jun 15, 2016 at 1:41 PM, Mike Bonner <bonnm...@gmail.com> wrote: > Not sure I understand whats going on either, I'd probably have to see more > code. > > @david.. I don't have time to try it right now, but I _THINK_ if you have > an existing function in your page and you want to get the results of that > function out, you can treat the function as a parameter to your livecode > call. > > Meaning if you have defined a javascrpithandler named fred, and your page > has a function named add() which takes 2 values to be added it will > probably work do do this.. > > do "liveCode.fred(add(4,3))" in widget "browser" > > Hmm in fact, i'll try it now. > > Yep, it works fine. Just pop whatever existing function (that has a return > value) that you want to get back out of the widget as a parameter to your > javascripthandler call and poof. Out it comes. > > In my test I had this in the page.. > > > <html> > <body> > <script> > var tcoords='1,2,3' > function add(p1,p2) { > return p1 + p2; > } > </script> > </body></html> > > And have registered myJSHandler as my livecode hook. > > Then this will get the results back out. > do "liveCode.myJSHandler(add(1,2))" in widget 1 > It uses the existing add function to add the 2 numbers passed in, and my > generic handler displays 3 in the message box. > > > On Wed, Jun 15, 2016 at 1:28 PM, Jacques Hausser <jacques.haus...@unil.ch> > wrote: > >> YESSS ! IT WORKS ! Many thanks, Mike ! >> >> But I’m very surprised: I don’t have to call my command “getLoc” more >> than one time: after that, each time I change the location of my marker on >> the map, the value of tCoord (which is declared at the start of the script, >> that is, as “global”) is modified, the function is triggered and the new >> coordinates are displayed in fld “Result”. I do not understand why, >> actually. Nothing to do with my “exportXYZ” javascript function, which was >> suppressed. My card script now contains: >> >> command getLoc >> do "liveCode.inputLoc(tCoord);" in widget "mapBrowser" >> end getLoc >> >> on inputLoc >> put param(1) into fld “FResult" >> end inputLoc >> >> (it’s less general than your version, but I wanted just to check it) >> >> I still have to dig further away to understand how it works. But you made >> my day ! >> >> Jacques >> >> > Le 15 juin 2016 à 20:25, Mike Bonner <bonnm...@gmail.com> a écrit : >> > >> > You said tcoord contains the information you want to return... >> > >> > I don't think you need to actually include the livecode function call in >> > your html, I'm pretty sure you can remove it entirely and do something >> like >> > this.. >> > >> > do "liveCode.inputLoc(tcoord)" in widget "Browser" and it will work. >> (It >> > did for me, its possible there are issues elsewhere in the javascript >> code) >> > >> > In this way you can define a single javascripthandler and have it hand >> back >> > any data you need. >> > >> > As a quick example, I set the htmltext of a widget to the following.. >> > >> > >> > <html> >> > <body> >> > <script> >> > var tcoords='1,2,3' >> > </script> >> > </body></html> >> > >> > The ONLY thing in there as javascript is the declaration of tcoords >> > >> > Then from the message box I set a javascript handler to myJSHandler and >> > then.. >> > do "liveCode.myJSHandler(tcoords,'fred')" in widget 1 >> > >> > For my lc handler I used paramcount and param() to find out and show the >> > data that was passed out. >> > >> > command myjshandler >> > put empty >> > repeat with i = 1 to the paramcount >> > put param(i) & cr after msg >> > end repeat >> > end myjshandler >> > >> > As expected the message box displayed >> > 1,2,3 >> > fred >> > >> > You might be able to leverage this into some debugging ability. >> > >> > I did try a bunch of different ways to get things out (some that seemed >> > like they SHOULD work but didn't, causing an "error eveluating >> javascript" >> > error) >> > >> > It even seemed sometimes that a method that worked just a minute ago >> would >> > stop. (I'm so bad at javascript though, its no surprise i'm lost) >> > >> > >> > On Wed, Jun 15, 2016 at 10:38 AM, Jacques Hausser < >> jacques.haus...@unil.ch> >> > wrote: >> > >> >> Still trying to use the browser widget and its javascripthandlers. I >> >> picked information here and there (many thanks to those who answered my >> >> previous mails, especially Mike) but really I would be glad to find a >> >> detailed user’s guide somewhere. I’m using a html file exploiting >> google >> >> map’s API as URL, and it works perfectly well with the old style >> browser. >> >> But I cannot grab the information I want with the new browser widget. >> >> Hereunder a simplified (and tested) example of what I tried for the old >> >> browser (successfully) and the widget browser (to no avail). >> >> >> >> —————————————————————————————— >> >> old style browser: >> >> —————————————————————————————— >> >> in the card script: >> >> >> >> command getLoc >> >> get revBrowserCallScript(LBrowserID,exportXYZ) >> >> put it into fld "FResult" >> >> end getLoc >> >> >> >> in the html file: >> >> >> >> function exportXYZ() >> >> //tCoord contains the ccordinates and altitude of the last point >> clicked >> >> { >> >> var vCoord = tCoord; >> >> return vCoord; >> >> } >> >> —————————————————————————————— >> >> browser widget: >> >> —————————————————————————————— >> >> in the card script: >> >> >> >> command getLoc >> >> do "exportXYZ();" in widget "mapBrowser" >> >> end mouseUp >> >> >> >> command inputLoc pCoord >> >> —- this command’s name is in the list of javascripthandlers for my >> browser >> >> put pCoord into fld "FResult" >> >> end inputLoc >> >> >> >> in the html file: >> >> >> >> function exportXYZ() >> >> //tCoord contains the ccordinates and altitude of the last point >> clicked >> >> { >> >> var pCoord = tCoord; >> >> liveCode.inputLoc(pCoord); >> >> } >> >> —————————————————————————————— >> >> >> >> the html file is exactly the same in both cases except for the change >> >> illustrated above. The map is displayed as expected in the browser >> widget, >> >> I can click any location to get a marker displayed and I can move to a >> new >> >> region with the following: >> >> >> >> —————————————————————————————— >> >> in the card script: >> >> >> >> command newReg plat,plon,pzoom >> >> do "goToReg(plat,plon,pzoom);” in widget "mapBrowser" >> >> end mouseUp >> >> >> >> and in the htlm file: >> >> >> >> function goToReg(pLat,pLng,pZoom) >> >> { >> >> var newCenter = new google.maps.LatLng(pLat,pLng); >> >> tmap.setCenter(newCenter); >> >> var tZoom = parseInt(pZoom,10); >> >> tmap.setZoom(tZoom); >> >> } >> >> —————————————————————————————— >> >> >> >> Thus “do … in widget” works; but I cannot fetch those damned >> coordinates >> >> with “liveCode.inputLoc(pCoord);". How to make the javascriptHandlers >> to >> >> work ? >> >> >> >> PS: Mac 10.11.5, LC 8.0.2 rc2 >> >> >> >> >> >> _______________________________________________ >> >> use-livecode mailing list >> >> use-livecode@lists.runrev.com >> >> Please visit this url to subscribe, unsubscribe and manage your >> >> subscription preferences: >> >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > _______________________________________________ >> > use-livecode mailing list >> > use-livecode@lists.runrev.com >> > Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> > http://lists.runrev.com/mailman/listinfo/use-livecode >> >> ****************************************** >> Prof. Jacques Hausser >> Department of Ecology and Evolution >> Biophore / Sorge >> University of Lausanne >> CH 1015 Lausanne >> please use my private address: >> 6 route de Burtigny >> CH-1269 Bassins >> tel: ++ 41 22 366 19 40 >> mobile: ++ 41 79 757 05 24 >> E-Mail: jacques.haus...@unil.ch >> ******************************************* >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > > _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode