Re: formencode.htmlfill.FillingParser chokes on javascript HTML
Aston Motes <[email protected]> Wed, 18 Nov 2009 13:45:33 -0800
| Newsgroups | gmane.comp.python.formencode |
|---|---|
| Message-ID | <[email protected]> |
Another trick might be to split your tag with concatenated strings so
that it doesn't look like HTML. I couldn't (quickly) make htmlfill
break on a simple example, but maybe you could try something like
this:
function hover(obj, text) {$(obj).append("<" + "span class=flag>
(" + text + ")<" + "/span>");}
- Aston
On Wed, Nov 18, 2009 at 1:23 PM, Roy Hyunjin Han
<[email protected]> wrote:
>
> On 11/18/2009 03:49 PM, Ian Bicking wrote:
> > On Wed, Nov 18, 2009 at 2:40 PM, Roy Hyunjin Han
> > <[email protected]> wrote:
> >
> >> Hi,
> >>
> >> I am using formencode.htmlfill() to render a form, but the function is inadvertently parsing my javascript code. Specifically, formencode.htmlfill.FillingParser raises the following exception
> >>
> >> HTMLParseError: malformed start tag
> >>
> >> when it encounters the following jQuery code
> >>
> >> function hover(obj, text) {$(obj).append("<span class=flag> (" + text + ")</span>");}
> >>
> >> and does not raise the exception after I remove the offending code. Perhaps we should strip javascript before htmlfill?
> >>
> > Well... what needs to happen is everything between<script> and
> > </script> should be treated as text, but HTMLParser doesn't understand
> > that.
> >
> > I *think* it would work fine to do:
> >
> > function hover(obj, text) {$(obj).append("<span class=flag> ("
> > + text + ")</span>");}
> >
> > Which is actually something we could do automatically with a regex.
> > Unfortunately right now I can't reproduce, I put a test at the bottom
> > here: http://bitbucket.org/ianb/formencode/src/tip/tests/test_htmlfill.py
> > -- but it passes.Thanks for your suggestion!
> >
> >
> Thanks for your suggestion!
>
> Escaping the brackets does fix the problem with htmlfill(), but it is
> also causing the browser to interpret the brackets literally, so the
> text prints but is not rendered as a span element.
>
> I think for the meantime I will have to do without that bit of
> javascript on the page, because I need to use htmlfill().
>
> RHH
>
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> trial. Simplify your report design, integration and deployment - and focus on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now. http://p.sf.net/sfu/bobj-july
> _______________________________________________
> FormEncode-discuss mailing list
> FormEncode-discuss-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/formencode-discuss
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july