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
