Okay, there may be things here that I don't understand, so
apologies...

1) I thought this function was supposed to be able to handle a mix of
HTML and JS, and would be smart enough to evaluate any JS it finds in
the returned data.  If this is the case (as it does appear to be),
then removing the script tag would surely break.

2) It turns out that my problem was the JS I had returned wasn't being
evaluated because it didn't recognize a Mootools class I had
instantiated.  This I don't think I understand.  I created a class,
like this:

var MyClass = new Class({

...bla bla bla...

});

MyClass.implement (new Options, new Events);

...then, I did this in the page:

window.addEvent('domready',function(){
        var STUFF = new MyClass();
});

I expected that the JS being returned by my Ajax page would be able to
do this:

STUFF.subMethod();

...but that failed.  I don't get why it failed, though, since I'm able
to just create a regular JS function on the page, and reference
*that*, like this:

function myFunction () {}

...and then my JS in the AJAX response is this:
myFunction()

Why does that second example work, and the first not work?  What basic
JS principle am I missing?

Thanks.





On Jan 20, 4:01 pm, Roman Land <roman.l...@gmail.com> wrote:
> I am not sure, but you should start by removing the <script>.. tags from the
> response, you can eval JS data only..
>
>
>
>
>
> On Wed, Jan 20, 2010 at 11:58 PM, hairbo <bmuel...@gmail.com> wrote:
> > Hmm...I *was* able to get my above example to work, but trying
> > different javascript fails, so something else has to be going on.
>
> > On Jan 20, 3:53 pm, hairbo <bmuel...@gmail.com> wrote:
> > > Hi all,
>
> > > I'm not sure how to set up an Ajax test in the Mooshell, so here's
> > > hoping I can explain my issue here.
>
> > > I'm trying to submit form data using Form.Request, and then pass back
> > > some javascript with the HTML that gets returned.  I'd like the
> > > Javascript to get evaluated.  According to the Form.Request docs,
> > > evalScripts defaults to "true", so this basic call should get me what
> > > I need:
>
> > > var myFormSubmit = new Form.Request(
> > >                                 'myForm',
> > >                                 'myFormContainer'
> > >                         )
>
> > > The data from my form is submitted correctly, and my Ajax page returns
> > > this:
>
> > > hi there
> > > <script type="text/javascript">alert('hi');</script>
>
> > > If I look at the "Response" tab in Firebug, I see that data returned.
> > > However, the JS is not executed.  Furthermore, if I use "View
> > > Generated Source" from the Firefox plugin Web Developer, I see that
> > > "hi there" has been written into the DOM, but my script statement is
> > > nowhere to be seen.  So, it would appear that it's getting returned
> > > and picked up by Firebug, but then at some point after that, it
> > > disappears.  Here's hoping I'm doing something very stupid.
>
> > > Any advice is appreciated.
>
> > > Thanks,
> > > hairbo
>
> --
> ---
> "Make everything as simple as possible, but not simpler."
>
> - Albert Einstein

Reply via email to