Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery .load() doesn't load script

Tags:

jquery

I have jQuery .load() function like in load_to.html page

$('#targetID').load('/load_from.html #bodyPart, script')

However, this doesn't seems to be loading javascript from load_from.html page. Is there any way, I can load javascript.

like image 229
Elisa Avatar asked Mar 29 '11 02:03

Elisa


2 Answers

how about using .getScript()

http://api.jquery.com/jQuery.getScript/

like image 112
dane Avatar answered Oct 31 '22 19:10

dane


From jQuery's documentation for .load():

jQuery uses the browser's .innerHTML property to parse the retrieved document and insert it into the current document. During this process, browsers often filter elements from the document such as <html>, <title>, or <head> elements.

To load scripts, you should create <script> elements yourself in the document's <head>:

$('<script>', {src: 'js_file.js'}).appendTo('head');

Perhaps you can request a list of scripts to load from the server with ajax:

$.post('scripts_to_load.json', function (data) {
    for (var i = 0; i < data.scripts.length; i++) {
        $('<script>', {src: data.scripts[i]}).appendTo('head');
    }
});
like image 34
David Tang Avatar answered Oct 31 '22 20:10

David Tang