Newbie questions about Pliant

Newbie questions about Pliant

Binding javascript events

I'd like to bind js events to input, select, etc.
Message posted by maybe Boris Reitman on 2007/08/22 16:46:30
I want the following behaviour:
when contents in a text-input field change, I'd like 
to call a javascript function of my own.

Currently, onChange="onChange();" is set for input field.
What would be the best way for me to add a handler to the onChange event ?

Another question:
If I would like to generate js code which will receive as an argument the contents
of the name="" field for a field of interest, what would be the call for that ?

For example,

  get_form_fieldname:(var Str message)  should return "message",

and 

  get_form_fieldname:(record:"07C0OU611":reason) should return 
  
  "/On5LOdomoWf1tBxgtcbHKA/sites/data/lhdb/opinions/07C0OU611/reason"

Thanks,
Boris
Message posted by maybe Hubert Tonneau on 2007/08/25 15:27:45
The 'hook' instruction is providing you such a feature on the Pliant UI server,
except that the code is executed on the server,
but the feature is not supported by the old Pliant HTTP server.
Message posted by maybe Boris Reitman on 2007/11/18 11:05:49
I am looking for a way to send a javascript action to be executed.

button "Buy"
  ...
  js "window.location.replace('https://secure.../...?arg1=xxx')"

which should force to change to another url. standard url_call will not 
do because I need to change the domain name.  

Doing: html "<script>...</script>" doesn't give the desired effect.
  
Message posted by maybe Boris Reitman on 2007/11/19 17:00:08
I solved my immediate problem with URL change, like this:

----8<----
      section "dummy"
        void
      
      button "Test"
        section_overwrite "dummy"
          html "REDIRECT:http://www.google.com"
---->8----

I modified apply() js function:
----8<---
  http writeline "function apply(p) {"
  http writeline "  if (p.substr(0,1) == '"+character:3+"') {"
  http writeline "    window."+(shunt use_frame "top." "")+"location.replace(p.substr(1));"
  http writeline "    return;"
  http writeline "  }"
  http writeline "  mm0 = p.indexOf('"+character:3+"',0);"
  http writeline "  if (mm0 >= 0) {"
  http writeline "    mm1 = p.indexOf('"+character:3+"',mm0+1);"
  http writeline "    if (mm1 < 0) mm1 = p.length-1;"
  http writeline "    window."+(shunt use_frame "top." "")+"location.replace(p.substr(mm0+1,mm1-mm0-1));"
  http writeline "    return;"
  http writeline "  }"
  ...
-->8------

And my "custom" plugin,

----8<---
custom html
  if h:html:len > 0
    if (h:html eparse "REDIRECT:" any:(var Str redirect_url))
      http writechars character:3+redirect_url+character:3
  ...
--->8-----