Чтение содержимого внешнего тега сценария с помощью jquery - PullRequest
7 голосов
/ 15 марта 2012

Общий шаблон для загрузки базовых шаблонов выглядит примерно так:

<script type='text/template' id='foo'>
    my template
</script>

----
var whatever = $('#foo').html();

Я бы хотел включить скрипт во внешний файл, например:

<script type='text/template' id='foo' src='myTemplate.tpl'></script>

Но html() из foo теперь пусто.

Я смотрел, как браузер тянет файл шаблона вниз, но я не уверен, находится ли он на странице или нет. Есть ли простой способ ссылаться на содержимое скрипта в javascript, или браузер просто проигнорировал его и выбросил результат?

Ответы [ 2 ]

2 голосов
/ 15 марта 2012

Я думаю, что для выполнения внешне загруженного скрипта вы должны выполнить eval () содержимого. Вы на самом деле не добавляете его в DOM, так как это скрипт, вы добавляете его во время выполнения JS. Могут быть и другие способы сделать это, но eval () обычно считается дырой в безопасности, поскольку вредоносный код может быть оценен.

Что я обычно делаю, так это генерирую разделы шаблонов на сервере, поэтому я знаю, что все мои JS есть, когда DOM готов.

1 голос
/ 15 марта 2012

Если целью является выполнение действия сразу после загрузки скрипта, вы можете поместить атрибут onload в тег скрипта. Если вы хотите загружать контент во время выполнения, вы можете использовать асинхронную стратегию загрузки (как указал Гатс).

Важно помнить некоторые важные моменты при использовании шаблонов для шаблонов jquery во внешних файлах, есть интересная статья о шаблонах jquery с внешними файлами, вы должны это проверить.

...