Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как добавить код яндекс.метрики в обработчик формы? (https://javascript.ru/forum/events/52142-kak-dobavit-kod-yandeks-metriki-v-obrabotchik-formy.html)

jscooker 05.12.2014 15:28

Как добавить код яндекс.метрики в обработчик формы?
 
Коллеги, прошу помощи:
есть форма заявки на сайте и js-обработчик этой формы, который ее валидирует и отправляет на мыл, если все ок. Нужно добавить в обработчик отслеживание целей яндекс.метрики.

Стандартные варианты для формы, предлагаемые яндексом типа
<form action="" method="get" onsubmit="yaCounterXXXXXX.reachGoal('ORDER'); return true;">
не подходят и/или не работают.
Хелп яндекса по сабжу: help.yandex.ru/metrika/objects/reachgoal.xml

Вот часть кода обработчика формы (файл scripts.js):
submitForm: function (e) {
	e.preventDefault();
	
	var form = $(this),
		 submitBtn = form.find('button[type="submit"]');
	
	if( app.validateForm(form) === false ) return false;
	
	/* var yaCounter12345678 = new Ya.Metrika({id: 12345678});
	yaCounter12345678.reachGoal('CONTACT');	*/

	var str = form.serialize();

	$.ajax({
		 url: '/sendform.php',
		 type: 'POST',
		 data: str
	})
	.done(function(msg) {
		 if(msg === "OK"){
			  var result = "<div class='bg-success'>Благодарим за вашу заявку, мы скоро свяжемся с вами!</div>";
			  form.html(result);
		 }else{
			  form.html(msg);
		 }
	});
},

Собственно примерный вызов метрики в коде есть (закомментирован), но не работает, естественно. Насколько понимаю из-за [не]видимости объекта или неправильного использования объекта/метода Метрики, но опыта в js не хватает, чтобы исправить (

Головной хтмл, где подключается scripts.js с обработчиком, выглядит так:
<!DOCTYPE html>
...
<body>
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
(function (d, w, c) {
    (w[c] = w[c] || []).push(function() {
        try {
            w.yaCounter12345678 = new Ya.Metrika({id:12345678,
...
<!-- /Yandex.Metrika counter -->
...
...
...
<script src="js/scripts.js"></script>
</body>
</html>

Прошу помочь правильно вызвать код Метрики в обработчике формы, чтобы отслеживались цели.

jscooker 06.12.2014 11:41

Проблема решена, тема закрыта.


Часовой пояс GMT +3, время: 13:41.