That compiles, which is a great step. However, the resulting javascript is onkeypress="processKeyPress(event.which, F379516302547JMS({'command': "pressed", 'params':event.which});)"
so it's attempting to execute the F37... also, I don't know if the semicolon is allowed inside the parens. Is there a way I can pass the function pointer separate from its params? On Wed, Feb 24, 2010 at 6:41 PM, Ross Mellgren <dri...@gmail.com> wrote: > <input type="text" onkeypress={ "processKeyPress(event.which, " + > jsonCall("pressed", JsRaw("event.which")).toJsCmd + ")" } /> > > -Ross > > On Feb 24, 2010, at 6:38 PM, Rick R wrote: > >> That works beautifully, thanks. >> >> With regards to using custom javascript functions, I have a function >> processKeyPress. It's role is to filter key presses, only send events >> to the server upon certain key presses. >> >> I guess the easiest way to handle this would be to pass the function created >> by: >> {jsonCall("pressed", JsRaw("event.which")).toJsCmd} >> >> into processKeyPress so that it can invoke it if the event.which is >> the correct type. >> >> Unfortunately, I can't come up with a way to describe this in inline XML. >> >> <input type="textarea" onkeypress="processKeyPress(event.which, >> {jsonCall("pressed", JsRaw("event.which")).toJsCmd})"/> >> >> leaving out the " causes a parse error.. adding the " cause it to be >> evaulated as a string. >> >> Any ideas? >> >> >> >> On Wed, Feb 24, 2010 at 2:57 PM, David Pollak >> <feeder.of.the.be...@gmail.com> wrote: >>> Rick, >>> >>> Here's a simple example: >>> >>> import net.liftweb._ >>> import util._ >>> import http._ >>> import js._ >>> import JsCmds._ >>> import JE._ >>> import scala.xml.NodeSeq >>> >>> class Evently extends CometActor { >>> >>> // handle an incoming JSON event >>> override def handleJson(in: Any): JsCmd = in match { >>> case JsonCmd("pressed", _, key, _) => SetHtml("info", <b>You pressed >>> {key}</b>) >>> case _ => Noop >>> } >>> >>> def render = >>> <div> >>> <span id="info"/> <!-- A place to put stuff --> >>> { >>> Script(jsonInCode) // include the JSON callback >>> } >>> <input type="text" onkeypress={jsonCall("pressed", >>> JsRaw("event.which")).toJsCmd}/> >>> </div> >>> } >>> >>> So, the handleJson message gets called on the server whenever a key is >>> pressed on the client (this example works in non-IE browsers, but that's >>> just 'cause I'm using event.which rather than event.keyCode). >>> >>> Hope this helps. >>> >>> Thanks, >>> >>> David >>> >>> >>> On Wed, Feb 24, 2010 at 8:23 AM, Rick R <rick.richard...@gmail.com> wrote: >>>> >>>> I have a textarea in which I process onKeyUp and onKeyDown commands. >>>> The handlers for such things are custom javascript. >>>> I would like to invoke functions in a Comet LiftActor / >>>> ListenerManager via these custom javascript functions. Is there >>>> documentation on the recommended way to do so? >>>> >>>> It looks like I will have to define the functions within a render call >>>> and use the SHtml.ajaxCall function, since the destination url is >>>> randomized. I am just wondering what would be the idiomatic way to do >>>> this. >>>> >>>> This is for a chat style app which processes/distributes data by the >>>> keystroke rather than by a line/post command. >>>> >>>> >>>> I'm open to any ideas / alternate suggestions. >>>> >>>> Thanks, >>>> Rick >>>> >>>> -- >>>> You received this message because you are subscribed to the Google Groups >>>> "Lift" group. >>>> To post to this group, send email to lift...@googlegroups.com. >>>> To unsubscribe from this group, send email to >>>> liftweb+unsubscr...@googlegroups.com. >>>> For more options, visit this group at >>>> http://groups.google.com/group/liftweb?hl=en. >>>> >>> >>> >>> >>> -- >>> Lift, the simply functional web framework http://liftweb.net >>> Beginning Scala http://www.apress.com/book/view/1430219890 >>> Follow me: http://twitter.com/dpp >>> Surf the harmonics >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Lift" group. >>> To post to this group, send email to lift...@googlegroups.com. >>> To unsubscribe from this group, send email to >>> liftweb+unsubscr...@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/liftweb?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Lift" group. >> To post to this group, send email to lift...@googlegroups.com. >> To unsubscribe from this group, send email to >> liftweb+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/liftweb?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Lift" group. > To post to this group, send email to lift...@googlegroups.com. > To unsubscribe from this group, send email to > liftweb+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/liftweb?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to lift...@googlegroups.com. To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.