Подтвердить что ты не робот

<script> тег внутри шаблона jquery

Backgroud:

У меня есть этот шаблон, который включает видео с youtube, загружаемого swfobject.

Вопрос:

Есть ли способ включить тег script...

<script type="text/javascript">
</script>

внутри шаблона jQuery

<script id="filaVideoTemplate" type="text/x-jQuery-tmpl">
    <!-- Some HTML here -->
    <script type="text/javascript">
        <!-- Some javascript here -->
    </script>
</script>

Очевидно, что это не работает напрямую, есть ли способ получить то же самое без script внутри другого script?

4b9b3361

Ответ 1

<script id="filaVideoTemplate" type="text/x-jQuery-tmpl">
    <!-- Some HTML here -->
    <script type="text/javascript">
        <!-- Some javascript here -->
    {{html "</sc"+"ript>"}}
</script>

Вы можете использовать {{html "</sc" + "ript > " }} заменить </ script >

Ответ 2

Не уверен, что это единственный способ, но вы можете вставить script в качестве необработанного HTML для шаблона:

<script id="filaVideoTemplate" type="text/x-jQuery-tmpl">
    <!-- Some HTML here -->
    {{html innerScript}}
</script>

Тогда:

var innerScript = '<script type="text/javascript"><!-- Some javascript here --></script>';
$('#filaVideoTemplate').tmpl({innerScript: innerScript});

Ответ 3

Ответ Ронни Ванг предложил хорошее место для начала моей проблемы. Однако его решение не сработало для меня - теги в теге шаблона jQuery вызывали проблемы на моей странице просмотра Razor MVC3.

К счастью, я наткнулся на решение (подробности @https://github.com/jquery/jquery-tmpl/issues/94), который работает и требует лишь незначительных изменений. Здесь Ронни отвечает, но с исправлением, которое должно сделать его совместимым с MVC3:

<script id="filaVideoTemplate" type="text/x-jQuery-tmpl">
    <!-- Some HTML here -->
    <scr{{= ""}}ipt type="text/javascript">
        <!-- Some javascript here -->
    </scr{{= ""}}ipt>
</script>

Похоже, что и открывающий, и закрывающий теги просто нужно разбить. Надеюсь, это поможет!

Ответ 4

<script id="filaVideoTemplate" type="text/x-jQuery-tmpl">
   <!-- Some HTML here -->  
</script>



var data = [{ 'Id': '1', 'Name': 'a' }, { 'Id': '2', 'Name': 'b' }, { 'Id': '3', 'Name': 'c'}];

var renderedHtml = $('<div />').html($('#filaVideoTemplate').tmpl(data)).append(('<script type="text/javascript"><!-- Some javascript here --></endScript>').replace(/endScript/g, 'script')).html();

, если данные одинарные, а не код выше кода. else (data is collection) тег script, используемый для связывания нескольких раз (время данных .length).

Ответ 5

не уверен, что вы просите, но: вы можете использовать ajax-запрос и поместить свой шаблон в файл (js). my template_script.js использует ajax так:

$('the element').load('template_script.js').then( OK , fail );

function OK(){
  do something if request was ok.
}

function fail(){
  do something if request was not ok.
}