Thanks Tom, I actually came up with a solution that uses that append code, but it parses the source file names out of the code and loads them dynamically when the ajax page is loaded.
I posted the script on my blog if anyone is interested. http://www.jamesstarmer.com/2007/07/13/dynamic-script-loader/ Thanks, James On Jul 13, 4:03 pm, Tom Gregory <[EMAIL PROTECTED]> wrote: > I see. > > Have you tried passing Javascript that would load an external file? I > mean, rather than passing <script src="..."></script>, passing > something like the following: > > <script type="text/javascript"> > function loadJs (fileName) { > var head = document.getElementsByTagName("head")[0]; > var s = document.createElement('script'); > s.type = 'text/javascript'; > s.src = fileName; > head.appendChild(s);} > > loadJs('/js/someFile.js'); > </script> > > TAG > > On Jul 13, 2007, at 11:03 AM, James Starmer wrote: > > > > > Tom, > > That didn't really help, thanks though. The .update (aka > > Element.update) calls evalScripts. > > >> From the apihttp://www.prototypejs.org/api/element/update: > > "If it contains any <script> tags, these will be evaluated after > > element has been updated (Element.update internally calls > > String#evalScripts)." > > > So using Ajax.Updater vs. Ajax.Request isn't the issue. > > > I don't have trouble with evalScripts handling scripts that are in the > > page being fetched by ajax. My problem is when that page includes a > > separate javascript file like <script src="whatever.js"></script>. > > evalScripts doesn't handle those. > > > It's more of a prototype design question than a help me with this bug > > question because I don't think it's a bug. > > > Thanks, > > James Starmer > > > On Jul 13, 11:41 am, Tom Gregory <[EMAIL PROTECTED]> wrote: > >> Looks like you may actually want Ajax.Updater, which has an > >> evalScripts option.http://prototypejs.org/api/ajax/updater > > >> new Ajax.updater(tab.linkedPanel, url, { > >> //method: 'post', //Is already default method > >> //parameters: Form.serialize('formId'), //Do you need to pass any > >> parameters? > >> evalScripts: true > > >> }); > > >> Does that work for you? > > >> TAG > > >> On Jul 13, 2007, at 9:28 AM, James Starmer wrote: > > >>> new Ajax.Request(url,{ > >>> method: 'post', > >>> onComplete: function(transport) { > >>> tab.linkedPanel.update > >>> (transport.responseText); > >>> } > >>> }); > > >>> tab.linkedPanel is an empty <div>. > > >>> On Jul 13, 10:41 am, Diodeus <[EMAIL PROTECTED]> wrote: > >>>> Please post the code for your ajax call. > > >>>> On Jul 12, 5:10 pm, James Starmer <[EMAIL PROTECTED]> wrote: > > >>>>> Hello everyone, > >>>>> Here is my problem. I have a page that gets fetched by an ajax > >>>>> request. I have > > >>>>> onComplete: function(transport) { > >>>>> $('element').update(transport.responseText); > > >>>>> } > > >>>>> The update in turn calls evalScripts and runs all of the > >>>>> javascript > >>>>> inside of script (<script></script>) tags, but I also have linked > >>>>> javascript files (<script src="whatever.js"></script>) in the > >>>>> requested page that evalScripts doesn't handle. > > >>>>> I'm just wondering why prototype doesn't handle these included > >>>>> scripts? Is it a conscious design decision? > > >>>>> Thanks, > >>>>> James Starmer --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
