Thanks Andre for the detailed response and HTTPD library steer - that’s new to me so I shall review with interest. :-)
I’m not in control of the pages, so that may be more useful than my first experiments - which were to download the page content into LC, add some markup and load the HTML text into the browser widget as a local ‘offline’ page. Best, Keith > On 6 Nov 2018, at 10:38, Andre Alves Garzia via use-livecode > <use-livecode@lists.runrev.com> wrote: > > Keith, > > If you're in control of the HTML used in the widget, then I'd advise you to > build functions inside the HTML and just call them from LC instead of > executing script directly, such as: > > ---- in the html ---- > > <html> > > <head> > > ... > > <script> > > function paintItRed() { > > document.body.style.backgroundColor = "red"; > > } > > </script> > > </head> > > <body> > > ... > > </body> > > </html> > > ------------------- > > > Then in the LC part you can do something like: > > > do "paintItRed()" in widget "Browser" > > > Which is more readable. Also, the body of the function inside the HTML can be > as complex as you want. Now, if you're not in control of the HTML, I'd opt > for some out-of-the-box strategy where you have the LC HTTPD library serving > the JS content and then use the LC "do .. in widget" form to add a new > <script> tag with the "src" attribute pointing to the HTTPD library server, > the script would load and execute in the context of the loaded page. This > should only be done after the page is loaded though or your script risks > executing before the HTML is complete. > > Be aware that you can use the "do in widget" form with complex scripts, but > I'd rather use the form above which keeps the JS and LC separate which is > more of a personal preference than a technical reason to be honest. > > om om > > andre > > On 11/6/2018 9:10 AM, Keith Clarke via use-livecode wrote: >> Folks, >> I’ve found a few examples of simple inline script injection to the browser >> widget, such as do "document.body.style.background = ‘red';" in widget >> "Browser” >> >> Is it possible to inject a multi-line javascript function - with variables >> definition, loops, etc - in this fashion or would the function need to be >> injected into the page within the browser as markup and then called from a >> one-line script from LiveCode? >> >> Thanks & regards, >> Keith >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode