Используйте Wicket для создания отслеживания электронной торговли Google Analytics - PullRequest
2 голосов
/ 13 июля 2011

Я разрабатываю электронную коммерцию, используя Wicket для рендеринга страниц.У меня есть «BasePage» с основным макетом, и на моей странице «Спасибо за покупку» я хочу добавить код отслеживания электронной торговли Google Analytics.Для справки, код JS, подобный следующему:

<script type="text/javascript>
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-12345678-9']);
  _gaq.push(['_addTrans', '123', '', '12.56', '', '5.00']);
  _gaq.push(['_addItem', '123', 'sku-1', 'Product 1', 'Category X', '12.56', '1']);
  _gaq.push(['_addItem', '123', 'sku-2', 'Product 2', 'Category Y', '13.45', '1']);
  _gaq.push(['_trackTrans']);
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>

HTML-код для корзины и оформления заказа, был прост, но как я могу динамически сгенерировать этот JS с Wicket?

Ответы [ 2 ]

5 голосов
/ 13 июля 2011

Да, просто для простого использования IHeaderContributor.Кстати, вы используете основу для электронной коммерции калитки?Я пытался объединить один или два без особой удачи.

 class BasePage extends Page implements IHeaderContributor {
        public BasePage(String id){
                super(id);
        }
        @Override
        public void renderHead(IHeaderResponse response){
                //You might want renderOnLoadJavascript....
                // Btw, I didn't format your string for java, you need to add quotation
                // marks or put it as one line.
                response.renderJavascript("var _gaq = _gaq || [];
                         _gaq.push(['_setAccount', 'UA-12345678-9']);
                         _gaq.push(['_addTrans', '123', '', '12.56', '', '5.00']);
                         _gaq.push(['_addItem', '123', 'sku-1', 'Product 1', 'Category X', '12.56', '1']);
                         _gaq.push(['_addItem', '123', 'sku-2', 'Product 2', 'Category Y', '13.45', '1']);
                         _gaq.push(['_trackTrans']);
                         (function() {
                             var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
                             ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
                             var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
                         })();"
                );
        }
 }
0 голосов
/ 13 июля 2011

Я не думаю, что Wicket поможет вам в создании самого javascript, вам нужно создать строку JS вручную, а затем либо объявить ваш <script> тег как компонент Label и установить строку JS в качестве егомодели или используйте интерфейс IHeaderContributor.

...