I don't know, I just saw that word in your code. I guess the event need not send to server if you are only interested in printing that canvas. I know every little on jhs. For canvas example, you can look at the page source of plot using the html5 canvas output.
On 14 Sep, 2013, at 8:27 PM, Brian Schott <[email protected]> wrote: > Bill, > > Thanks. > > I tried your test code and was encouraged by a short delay, but only the > text `hello world` appears, still. I am curious what the role of `roll` is > in that code you suggested, because there is no `roll` in this html code? > > function ev_roll_click() > > > Also, you may recall that I added the following lines to utilh.ijs in the > <head> element. I am wondering if that is necessary, or does JHS already > access similar content? > > > <script type="text/javascript" src=" > http://ajax.googleapis.com/ajax/libs/jquery$ > <script type="text/javascipt"> $(document).ready(function() { > }); > </script> > > > For completeness, I am including the remaining stuff, too. > > > JS_test2_ > > function ev_roll_click(){ > > var canvas = $("#myCanvas"); > > var context = canvas.get(0).getContext("2d"); > > context.fillRect(40, 40, 100, 100); > > } > > LASTRESPONSE_test2_ > > ... > > } > > > // focus if hml/jmab - return 1 if focus is done > > function jmenunavfocus(m,n) > > { > > if(2!=jmenunavinfo(m,n))return 0; > > m[n].focus(); > > return 1; > > } > > > // return m[n] info - 0 none, 1 hmg, 2 hml or hmab > > function jmenunavinfo(m,n) > > { > > if(n==m.length)return 0; > > return ("jhmg"==m[n].getAttribute("class"))?1:2 > > } > > > // activate menu group n > > function jactivatemenu(n) > > { > > jmenuhide(); > > var node= jfindmenu(n); > > if('undefined'==typeof node) return; > > node.focus(); > > } > > > var menublock= null; // menu ul element with display:block > > var menulast= null; // menu ul element just hidden > > > function jmenuclick(ev) > > { > > jmenuhide(ev); > > var e=window.event||ev; > > var tar=(typeof e.target=='undefined')?e.srcElement:e.target; > > var id=tar.id; > > var idul= id+"_ul"; > > jbyid(id).focus(); // required on mac > > if(jbyid(idul).style.display=="block") > > { > > menublock= null; > > jbyid(idul).style.display= "none"; > > } > > else > > { > > if(menulast!=jbyid(idul)) > > { > > menublock= jbyid(idul); > > menublock.style.display= "block"; > > } > > } > > } > > > function jmenushow(node) > > { > > jmenuhide(); > > var id=node.id; > > var idul= id+"_ul"; > > menublock= jbyid(idul); > > menublock.style.display= "block"; > > } > > > function jmenuhide() > > { > > if(tmenuid!=0) clearTimeout(tmenuid); > > tmenuid= 0; > > menulast= menublock; > > if(menublock!=null) menublock.style.display= "none"; > > menublock= null; > > return true; > > } > > > // browser differences > > // safari/chrome onblur on mousedown and onfocus on mouseup > > // onblur will hide the menu 250 after mousedown (no clear) > > // so menu item click needs to be quick > > > var tmenuid= 0; > > > function jmenublur(ev) > > { > > if(tmenuid!=0) clearTimeout(tmenuid); > > tmenuid= setTimeout(jmenuhide,500) > > return true; > > } > > > function jmenufocus(ev) > > { > > if(tmenuid!=0) clearTimeout(tmenuid); > > tmenuid= 0; > > return true; > > } > > > function jmenukeydown(ev) > > { > > var e=window.event||ev; > > var c=e.keyCode; > > return(c>36&&c<41)?false:true; > > } > > > function jmenukeypress(ev) > > { > > var e=window.event||ev; > > var c=e.keyCode; > > return(c>36&&c<41)?false:true; > > } > > > function jmenukeyup(ev) > > { > > var e=window.event||ev; > > var c=e.keyCode; > > if(c<37||c>40)return false; > > var tar=(typeof e.target=='undefined')?e.srcElement:e.target; > > jmenunav(tar,c); > > return true; > > } > > > > // get pixel... - sizing/resizing > > > // window.onresize= resize; // required for resize > > // and resize should be called in ev_body_load > > > // the ...h functions need simple changes to > > // become the corresponding set of w functions > > > // body{background:aqua} can be useful in > > // finding out why calculations turn out wrong > > > // IF and FF both have bugs with <h1>...</h1> > > // vs these calculations and <hx> should not > > // be used where resizing will be used > > > // get pixel window height > > function jgpwindowh() > > { > > if(window.innerHeight) > > return window.innerHeight; // not IE > > else > > return document.documentElement.clientHeight; > > } > > > // get pixel body margin height (top+bottom) > > function jgpbodymh() > > { > > var h; > > if(window.getComputedStyle) > > { > > h= parseInt(window.getComputedStyle(document.body,null).marginTop); > > h+= parseInt(window.getComputedStyle(document.body,null).marginBottom); > > } > > else > > { > > h= parseInt(document.body.currentStyle.marginTop); > > h+= parseInt(document.body.currentStyle.marginBottom); > > } > > return h; > > } > > > // get pixel div height - IE/FF bugs vs <h1> > > function jgpdivh(id){return jbyid(id).offsetHeight;} > > > /* > > function jgpdivh(id) > > { > > var e=jbyid(id); > > if(e==null)return 50; > > //alert(e+" "+id); > > // alert(e.offsetHeight); > > //return jbyid(id).offsetHeight; > > var v=e.offsetHeight; > > //alert(id+" "+v); > > return v; > > } > > */ > > > // get pixel end > > > // debug > > > // numbers from unicode > > function debcodes(t) > > { > > r= ""; > > for(var i=0;i<t.length;++i) > > r= r+" "+t.charCodeAt(i); > > return r; > > } > > > // eval js sentences in s > > // a is true in ajax and false in refresh > > function jseval(ajax,s) > > { > > var i,j,a,z,q; > > a= "<!-- j html output a --><!-- j js a --><!-- "; > > > z= " --><!-- j js z --><!-- j html output z -->"; > > while(0!=s.length) > > { > > i= s.indexOf(a); > > if(-1!=i) > > { > > i+= a.length; > > j= s.indexOf(z); > > q= s.substring(i,j); > > if(ajax||';'==q.charAt(0)) > > try{eval(q);}catch(e){alert(e+"\n"+q);} > > s= s.substring(j+z.length); > > } > > else > > s= ""; > > } > > } > > function ev_roll_click(){ > > var canvas = $("#myCanvas"); > > var context = canvas.get(0).getContext("2d"); > > context.fillRect(40, 40, 100, 100); > > } > > </script> > > </head> > > <body onload="jevload();" onunload="jevunload();" > onfocus="jevfocus();"><form id="j" name="j" method="post" > action="test2"><input type="hidden" name="jdo" value=""><input > type="hidden" name="jlocale" value="test2"><input type="hidden" > name="jid" va... > > </html> > > > > > On Sat, Sep 14, 2013 at 7:21 AM, bill lam <[email protected]> wrote: > >> It looks odd, why did you comment out the function header? >> This will look more reasonable (untested) >> >> JS=: 0 : 0 NB. javascript >> // function ev_roll_click(){jsubmit();} // submit form - calls J >> function ev_roll_click(){ >> var canvas = $("#myCanvas"); >> var context = canvas.get(0).getContext("2d"); >> context.fillRect(40, 40, 100, 100); >> } >> ) >> >> Сб, 14 сен 2013, Brian Schott писал(а): >>> Continuing, I edited/added the following code to test2.ijs and ran and >>> saved the code while in JHS. >>> >>> HBS=: 0 : 0 >>> jhh1 'hello world' >>> '<canvas id="myCanvas" width="500" height="500"> </canvas>' >>> ) >>> >>> JS=: 0 : 0 NB. javascript >>> // function ev_roll_click(){jsubmit();} // submit form - calls J >>> ev_roll_click >>> var canvas = $("#myCanvas"); >>> var context = canvas.get(0).getContext("2d"); >>> context.fillRect(40, 40, 100, 100); >>> ) >>> >>> But I see no change in the `hello` tab even after a refresh. My only >>> response in the jijx window was the following. >>> >>> |value error: jev_get_test2_ >>> >>> | jev_get_test2_'' >>> >>> *** response not sent for test2 >>> >>> *** html409 Conflict >>> >>> I continued trying to get more info in the jijx window as shown below >> (the >>> vast majority below is the result of entering ` LASTRESPONSE_test2_` . >>> But I do not have a clue what to try next. Help, please. >>> >>> >>> **********longish session in jijx below********* >>> >>> names_test2_ '' >>> >>> CSS HBS JS LASTRESPONSE create jev_get >>> >>> JS_test2_ >>> >>> // function ev_roll_click(){jsubmit();} // submit form - calls J >> ev_roll_click >>> >>> var canvas = $("#myCanvas"); >>> >>> var context = canvas.get(0).getContext("2d"); >>> >>> context.fillRect(40, 40, 100, 100); >>> >>> LASTRESPONSE_test2_ >>> >>> ... >>> >>> return 1; >>> >>> } >>> >>> >>> // focus if hml/jmab - return 1 if focus is done >>> >>> function jmenunavfocus(m,n) >>> >>> { >>> >>> if(2!=jmenunavinfo(m,n))return 0; >>> >>> m[n].focus(); >>> >>> return 1; >>> >>> } >>> >>> >>> // return m[n] info - 0 none, 1 hmg, 2 hml or hmab >>> >>> function jmenunavinfo(m,n) >>> >>> { >>> >>> if(n==m.length)return 0; >>> >>> return ("jhmg"==m[n].getAttribute("class"))?1:2 >>> >>> } >>> >>> >>> // activate menu group n >>> >>> function jactivatemenu(n) >>> >>> { >>> >>> jmenuhide(); >>> >>> var node= jfindmenu(n); >>> >>> if('undefined'==typeof node) return; >>> >>> node.focus(); >>> >>> } >>> >>> >>> var menublock= null; // menu ul element with display:block >>> >>> var menulast= null; // menu ul element just hidden >>> >>> >>> function jmenuclick(ev) >>> >>> { >>> >>> jmenuhide(ev); >>> >>> var e=window.event||ev; >>> >>> var tar=(typeof e.target=='undefined')?e.srcElement:e.target; >>> >>> var id=tar.id; >>> >>> var idul= id+"_ul"; >>> >>> jbyid(id).focus(); // required on mac >>> >>> if(jbyid(idul).style.display=="block") >>> >>> { >>> >>> menublock= null; >>> >>> jbyid(idul).style.display= "none"; >>> >>> } >>> >>> else >>> >>> { >>> >>> if(menulast!=jbyid(idul)) >>> >>> { >>> >>> menublock= jbyid(idul); >>> >>> menublock.style.display= "block"; >>> >>> } >>> >>> } >>> >>> } >>> >>> >>> function jmenushow(node) >>> >>> { >>> >>> jmenuhide(); >>> >>> var id=node.id; >>> >>> var idul= id+"_ul"; >>> >>> menublock= jbyid(idul); >>> >>> menublock.style.display= "block"; >>> >>> } >>> >>> >>> function jmenuhide() >>> >>> { >>> >>> if(tmenuid!=0) clearTimeout(tmenuid); >>> >>> tmenuid= 0; >>> >>> menulast= menublock; >>> >>> if(menublock!=null) menublock.style.display= "none"; >>> >>> menublock= null; >>> >>> return true; >>> >>> } >>> >>> >>> // browser differences >>> >>> // safari/chrome onblur on mousedown and onfocus on mouseup >>> >>> // onblur will hide the menu 250 after mousedown (no clear) >>> >>> // so menu item click needs to be quick >>> >>> >>> var tmenuid= 0; >>> >>> >>> function jmenublur(ev) >>> >>> { >>> >>> if(tmenuid!=0) clearTimeout(tmenuid); >>> >>> tmenuid= setTimeout(jmenuhide,500) >>> >>> return true; >>> >>> } >>> >>> >>> function jmenufocus(ev) >>> >>> { >>> >>> if(tmenuid!=0) clearTimeout(tmenuid); >>> >>> tmenuid= 0; >>> >>> return true; >>> >>> } >>> >>> >>> function jmenukeydown(ev) >>> >>> { >>> >>> var e=window.event||ev; >>> >>> var c=e.keyCode; >>> >>> return(c>36&&c<41)?false:true; >>> >>> } >>> >>> >>> function jmenukeypress(ev) >>> >>> { >>> >>> var e=window.event||ev; >>> >>> var c=e.keyCode; >>> >>> return(c>36&&c<41)?false:true; >>> >>> } >>> >>> >>> function jmenukeyup(ev) >>> >>> { >>> >>> var e=window.event||ev; >>> >>> var c=e.keyCode; >>> >>> if(c<37||c>40)return false; >>> >>> var tar=(typeof e.target=='undefined')?e.srcElement:e.target; >>> >>> jmenunav(tar,c); >>> >>> return true; >>> >>> } >>> >>> >>> >>> // get pixel... - sizing/resizing >>> >>> >>> // window.onresize= resize; // required for resize >>> >>> // and resize should be called in ev_body_load >>> >>> >>> // the ...h functions need simple changes to >>> >>> // become the corresponding set of w functions >>> >>> >>> // body{background:aqua} can be useful in >>> >>> // finding out why calculations turn out wrong >>> >>> >>> // IF and FF both have bugs with <h1>...</h1> >>> >>> // vs these calculations and <hx> should not >>> >>> // be used where resizing will be used >>> >>> >>> // get pixel window height >>> >>> function jgpwindowh() >>> >>> { >>> >>> if(window.innerHeight) >>> >>> return window.innerHeight; // not IE >>> >>> else >>> >>> return document.documentElement.clientHeight; >>> >>> } >>> >>> >>> // get pixel body margin height (top+bottom) >>> >>> function jgpbodymh() >>> >>> { >>> >>> var h; >>> >>> if(window.getComputedStyle) >>> >>> { >>> >>> h= parseInt(window.getComputedStyle(document.body,null).marginTop); >>> >>> h+= parseInt(window.getComputedStyle(document.body,null).marginBottom); >>> >>> } >>> >>> else >>> >>> { >>> >>> h= parseInt(document.body.currentStyle.marginTop); >>> >>> h+= parseInt(document.body.currentStyle.marginBottom); >>> >>> } >>> >>> return h; >>> >>> } >>> >>> >>> // get pixel div height - IE/FF bugs vs <h1> >>> >>> function jgpdivh(id){return jbyid(id).offsetHeight;} >>> >>> >>> /* >>> >>> function jgpdivh(id) >>> >>> { >>> >>> var e=jbyid(id); >>> >>> if(e==null)return 50; >>> >>> //alert(e+" "+id); >>> >>> // alert(e.offsetHeight); >>> >>> //return jbyid(id).offsetHeight; >>> >>> var v=e.offsetHeight; >>> >>> //alert(id+" "+v); >>> >>> return v; >>> >>> } >>> >>> */ >>> >>> >>> // get pixel end >>> >>> >>> // debug >>> >>> >>> // numbers from unicode >>> >>> function debcodes(t) >>> >>> { >>> >>> r= ""; >>> >>> for(var i=0;i<t.length;++i) >>> >>> r= r+" "+t.charCodeAt(i); >>> >>> return r; >>> >>> } >>> >>> >>> // eval js sentences in s >>> >>> // a is true in ajax and false in refresh >>> >>> function jseval(ajax,s) >>> >>> { >>> >>> var i,j,a,z,q; >>> >>> a= "<!-- j html output a --><!-- j js a --><!-- "; >>> >>> >>> z= " --><!-- j js z --><!-- j html output z -->"; >>> >>> while(0!=s.length) >>> >>> { >>> >>> i= s.indexOf(a); >>> >>> if(-1!=i) >>> >>> { >>> >>> i+= a.length; >>> >>> j= s.indexOf(z); >>> >>> q= s.substring(i,j); >>> >>> if(ajax||';'==q.charAt(0)) >>> >>> try{eval(q);}catch(e){alert(e+"\n"+q);} >>> >>> s= s.substring(j+z.length); >>> >>> } >>> >>> else >>> >>> s= ""; >>> >>> } >>> >>> } >>> >>> // function ev_roll_click(){jsubmit();} // submit form - calls J >> ev_roll_click >>> >>> var canvas = $("#myCanvas"); >>> >>> var context = canvas.get(0).getContext("2d"); >>> >>> context.fillRect(40, 40, 100, 100); >>> >>> </script> >>> >>> </head> >>> >>> <body onload="jevload();" onunload="jevunload();" >>> onfocus="jevfocus();"><form id="j" name="j" method="post" >>> action="test2"><input type="hidden" name="jdo" value=""><input >>> type="hidden" name="jlocale" value="test2"><input type="hidden" >>> name="jid" va... >>> >>> </html> >>> >>> >>> >>> **********longish session in jijx above********* >>> >>> >>> >>> On Sat, Sep 14, 2013 at 6:49 AM, Brian Schott <[email protected] >>> wrote: >>> >>>> Instead of using gtk I used unix's console and entered `nano >> test2.ijs` >>>> as shown next. What is not shown is that I merely copied your text for >>>> `test2.ijs` directly into nano. >>>> >>>> server:~ brian$ cd /Users/brian/j64-701-user >>>> server:j64-701-user brian$ nano test2.ijs >>>> >>>> What seemed to fail, was the following line, but it was not a failure, >>>> just a misplaced command. >>>> >>>> http://127.0.0.1:65001/test2 >>>> >>>> Instead of being entered in the unix console, the command needed to be >>>> entered in the browser as a URL, and only after entering the following >> in >>>> the browser as a URL. >>>> >>>> http://127.0.0.1:65001/jijs?mid=open&path=~User/test2.ijs# >>>> >>>> An alternative to entering the above line in the URL field of the >> browser >>>> is to select `jfile` from the leftmost menu of the jijx window of JHS >> and >>>> then (double-?) clicking on the file `test2.ijs` on that page. >>>> >>>> But the key step then is to `run` the selected file using the `action` >>>> menu or as a keystroke shortcut entering Esc-r. >>>> >>>> Then, opening a new tab in the browser and entering the link below (and >>>> above), produces the Hello World web page, with the tab titled `hello` >> . My >>>> browser even produces the blue J. >>>> >>>> http://127.0.0.1:65001/test2 >>>> >>>> Yes! Thank you Bjorn. >>>> >>>> Next I will attempt to produce a canvas rendered rectangle. >>>> >>>> >>>> >>>> >>> -- >>> (B=) >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> >> -- >> regards, >> ==================================================== >> GPG key 1024D/4434BAB3 2008-08-24 >> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm >> > > > > -- > (B=) <-----my sig > Brian Schott > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
