У меня есть html-страница с использованием jquery 1.7.2. Внутри страницы у меня есть тэг для скриптов.Загрузка содержимого jquery в тег скрипта в firefox
<script id="navigation-template" type="text/x-handlebars-template"></script>
Далее вниз страницы я использую JavaScript, чтобы загрузить мои рули шаблона в тег сценария с помощью следующей функции:
loadTemplate: function(templateId, elementId) {
if (!elementId) {
elementId = templateId;
}
$('#'+elementId).load('/my/path/templates.html #'+templateId);
}
Это работает отлично в хроме, затмение браузера, и даже IE 9, но, похоже, идет на юг в Firefox.
Я отлаживал, и вызов загрузки успешно завершается, и содержимое возвращается, но вызов $('#navigation-template').html()
дает пустую строку.
У меня также был контент в теге скрипта и вызвал загрузку и увидел, что он был заменен пустой строкой после вызова .load
.
Наконец, если я вручную выполнил $('#navigation-template').html("hello");
, я вижу, что значение .html()
для тега скрипта изменено.
Если я перейду к простому ajax get, тогда мне придется разобрать его и получить данный элемент, а не полагаться на нагрузку, чтобы получить элемент для меня.
Как обойти эту проблему в firefox?
Почему вы должны поместить его в тег сценария, вы не можете просто составить шаблон, как только вы его получите от ajax (load)? – dezman
Hrm. Я посмотрю на это. Хорошая вещь о том, чтобы поместить его в тег скрипта, это то, что я могу просто использовать функцию 'load()', и все это сделано, тогда, когда я хочу применить шаблон позже, я могу. Чтобы скомпилировать его сейчас, мне придется загрузить его по-другому (поставьте обработчик успеха для загрузки и обработки его вручную), но это может быть ответ ... – digitaljoel
@Watson благодарит за то, что указал на очевидное решение. Иногда я только javascript, поэтому иногда мне это нужно. Поместите свой комментарий в качестве ответа, и я приму его. – digitaljoel