On Tue, Sep 22, 2009 at 7:49 PM, KP <horse.headed.fish....@gmail.com> wrote:

>
> Hi all.
>
> I have essentially the following setup in a website:
>
> class AjaxTest {
>   def render =
>      <div>
>         <div id="foo">foo</div>
>         {getAjaxForm}
>      </div>
>
>   def getAjaxForm = SHtml.ajaxForm(
>         SHtml.submit("submit", () => ()),
>         Run(customJSStr))
>
>   def customJSStr = "document.getElementById('foo').innerHTML = '" +
> aStr + "';"
>

If aStr contains a single or double quote or a non-printable or non-ascii
character, your expression will fail (it will be invalid JavaScript).

I would suggest:

def customJSStr = "document.getElementById('foo').innerHTML = " +aStr.encJs
+ ";"

That will properly escape the string as a JavaScript string.


>
>   val aStr = SHtml.a(() => SetHtml("foo", Text("baz")), Text
> ("bar")).toString
> }
>
>
>
> when aStr is displayed (with text 'bar'), the link is inactive.
>
>
> I'm using Run(customJSStr) instead of SetHtml as, in the actual app,
> the situation is slightly more complicated (and the RHS of the
> assignment operator in the javascript expression has some more stuff
> fetched from the document).
>
> Note also that if the ajaxForm uses SetHtml() instead of Run() it
> works as expected.
>
> So the question is -- is there a straightforward explanation for
> what's going on here (I'm still kinda cargo-culting lift).
>
> And, unconditional upon the answer to the last question, is there a
> way to make aStr a valid, active link (or, I guess, string
> representing one) while retaining the ability to have an arbitrarily
> complex javascript expression in customJSStr (this would actually be
> defined in a separate js file, of course).
>
>
> Thanks much,
> KP
>
> >
>


-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Git some: http://github.com/dpp

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@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
-~----------~----~----~----~------~----~------~--~---

Reply via email to