Использование .load (url) не позволяет мне использовать дополнительный JavaScript - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть этот код в файле index.html:

$(function(){
    $('a#link').live('click', function(e){ 
        $("div#element").load("file.html");
    });
});

В файле file.html у меня есть этот код вверху

<script src="file.js" type="javascript"></script>

Когда я нажимаю на ссылку,файл загружается нормально, однако (согласно Firebug) файл JavaScript не загружается.Кто-нибудь знает почему?Я попытался также поместить теги script в файл index.html, но это не сработало.

Ответы [ 4 ]

3 голосов
/ 12 декабря 2011

Попробуйте загрузить скрипты страницы после загрузки страницы в ваш div следующим образом:

$(function(){
    $('a#link').live('click', function(e){ 
        $("div#element").load("file.html", function(){
            $.getScript("file.js", function(){
               // second page's scripts are loaded...
            });
        });
    });
});

Более простой способ исправить это, как Указание , указанное , это либо исправить атрибут type, либо пропустить его.

2 голосов
/ 12 декабря 2011

если вам нужно загрузить сценарии, вы можете использовать метод getScript вместо

0 голосов
/ 12 декабря 2011

Проблема в том, что когда вы выполняете подобные сценарии ".load ()", jQuery будет запускать их, только если нет атрибута "type" или если атрибут "type" имеет точное значение "text / javascript". Все остальное, и это полностью игнорируется.

Ваш скрипт имеет только "javascript" для этого атрибута, поэтому он выброшен.

0 голосов
/ 12 декабря 2011

При загрузке в html с помощью javascript, как правило, необходимо удалить html-теги head и body, чтобы запустить javascript.Я думаю, что это также упоминается здесь вызов jQuery .load () не выполняет JavaScript в загруженном HTML-файле

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...