Включение javascript в шаблон уса

У меня есть блок javascript для отображения рекламы, которую я хочу включить каждый n-й раз на странице.

Я использую Mustache в качестве языка шаблонов, но не могу понять, как включить js, поэтому он запускается как script, а не просто вставляется как строка.

<script id="mustache-post-advert" type="text/mustache">
<article id="post-{{id}}" class="post">

    {{{  <script type="text/javascript">GA_googleFillSlot("MPU")</script>  }}}

</article>

</script>

Я пробовал тройной {который, я надеялся, сбежал, но, к сожалению, этого не произошло.

Ответы

Ответ 1

Ваш json-вход должен ссылаться на script для вызова:

JSON

 var json = {
   id: "someid",
   gaFillSlot: function(){
     GA_googleFillSlot("MPU");
   }
 }

TEMPLATE

 <script id="mustache-post-advert" type="text/mustache">
   <article id="post-{{id}}" class="post">
     {{gaFillSlot}}
   </article>
 </script>

Удостоверьтесь, что "GA_googleFillSlot" доступен для вызова из контекста усов во время шаблонов.

Это соответствует логической природе Усы: любая логика, которую вы хотите, должна быть встроена в json, с которым вы переходите к Mustache to bgin.

Не тестировал это, но это должно работать. НТН

Ответ 2

Вы уже находитесь в теге script, нет необходимости добавлять другое:

<script id="mustache-post-advert" type="text/mustache">
  <article id="post-{{id}}" class="post">
    {{ GA_googleFillSlot("MPU") }}
  </article>
</script>

изменить

на второй мысли, этого может быть недостаточно; см. здесь информацию о вызовах функций из шаблонов усов:

http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-using-the-mustache-template-library/