uuh lengthy function. I came up with this for my personal library,
works in FF/IE6,7/Safari:

function runScripts(el){
                        var scripts = el.getElementsByTagName('script');
                        if (scripts) {for (var i=0;i<scripts.length;i++) {
                                var script = document.createElement('script');
                                script.type = 'text/javascript';
                                script.text = scripts[i].text;
                                
document.getElementsByTagName("head")[0].appendChild(script);
                        }};
                }

the 'language' attribute is deprecated in XHTML.

cheers
- ricardo

Rene Veerman wrote:
> Yep, you'll have to add the javascript nodes in the HTML you're
> inserting into the DIV manually.
>
> WTF, i'll be a nice guy and post my routines for it. you'll have to
> adapt them yourself ;)
>
>     function parseJavascript (htmlElement) {
>         var scripts = $('SCRIPT', htmlElement);
>        var htmlHead = $('HEAD')[0];
>         for (var i=0; i<scripts.length; i++) {
>             var script = scripts[i];
>
>             if (script.src) {
>                 var scriptsInHead = $('SCRIPT', htmlHead);
>                 var found = false;
>                 for (var j=0; j<scriptsInHead.length && (!found); j++) {
>                     if (scriptsInHead[j].src == script.src) found = j;
>                 }
>                 var e = document.createElement("script");
>                 e.type="text/javascript";
>                 e.language='JavaScript';
>                 e.src = script.src;
>                 if (found===false) {
>                     console.log ("mb.desktop.parseJavascript: appending
> "+e.src+" to HEAD.");
>                     htmlHead.appendChild(e);
>                 } else {
>                     console.log ("mb.desktop.parseJavascript: removing
> then re-adding "+e.src+" to HEAD.");
>                     scriptsInHead[found].parentNode.removeChild
> (scriptsInHead[found]);
>                     htmlHead.appendChild (e);
>                 }
>             } else {
>                 var s = scripts[i].innerHTML;
>                 s = s.replace (/<!--/, '');
>                 s = s.replace (/-->/, '');
>                 s = s.replace (/\s\s/g, '');
>              //console.log (s);
>                 eval(s);
>             }
>         }
>
>
>
>
> Steve wrote:
> > Hi, I'm a jQuery newbie. Basically, I'm trying to load an html file
> > into a div when a button is clicked. The html file contains
> > external .js and .css files for the Greybox widget. I can't get
> > Greybox working, do I have to do something special to load the js and
> > css before the load method? Appreciate any help.
> >
> > --------------- test.html ---------------------
> >
> >  $(document).ready(function(){
> >    $("#btn").click(function(){
> >
> >      $("#demo").load("greybox.html");
> >    });
> >  });
> >
> > --------------- greybox.html ---------------------
> >
> > <script type="text/javascript">
> >     var GB_ROOT_DIR = "greybox/";
> > </script>
> >
> > <script type="text/javascript" src="greybox/AJS.js"></script>
> > <script type="text/javascript" src="greybox/gb_scripts.js"></script>
> > <link href="greybox/gb_styles.css" rel="stylesheet" type="text/css" />
> >
> > <a href="http://google.com/"; title="Google" rel="gb_page_fs[]">Launch
> > google.com in fullscreen window</a>
> >
> >

Reply via email to