Показать сообщение отдельно
  #1 (permalink)  
Старый 05.12.2014, 15:28
Аватар для jscooker
Новичок на форуме
Отправить личное сообщение для jscooker Посмотреть профиль Найти все сообщения от jscooker
 
Регистрация: 05.12.2014
Сообщений: 2

Как добавить код яндекс.метрики в обработчик формы?
Коллеги, прошу помощи:
есть форма заявки на сайте и 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>

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