Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.01.2012, 21:46
Интересующийся
Отправить личное сообщение для vamfirius Посмотреть профиль Найти все сообщения от vamfirius
 
Регистрация: 01.07.2010
Сообщений: 29

Проблема с яндекс метрикой в IE(область видимости объекта)
Всем доброго дня.
При помощи следующего кода на сайт подключается счетчик яндекс метрики -

<script type="text/javascript">
var yaParams = {/*Здесь параметры визита*/};
</script>

<div style="display:none;">
<script src="//mc.yandex.ru/metrika/watch.js" type="text/javascript" defer="defer"></script>
<script type="text/javascript">
(function(w, c) {
    (w[c] = w[c] || []).push(function() {
        try {
            w.yaCounterSOMEID = new Ya.Metrika({id:SOMEID, enableAll: true, webvisor:true,params:window.yaParams||{ }});
        }
        catch(e) { }
    });
})(window, "yandex_metrika_callbacks");
</script></div>
<noscript><div><img src="//mc.yandex.ru/watch/SOMEID" style="position:absolute; left:-9999px;" alt="" /></div></noscript>


Далее реализовано отслеживание целеи следующим образом ( цель - оставить заявку на email ) -

yaCounterSOMEID.hit('http://'+servername+thisurl+'#requestsent',null,null);


Собственно код отправки данных в php скрипт аяксом -

function send_mail(){
	if ($('.tel').val().length < 7 || $(".tel").val() == "ТЕЛЕФОН*"){
		$('.tel').css('color', '#FF0000');
		return false;
	}
	var name = encodeURIComponent($(".name").val());
	var tel = encodeURIComponent($(".tel").val());
	var comment = encodeURIComponent($(".comment").val());
	$.ajax({
		url: '/include/mail.php?name='+name+'&tel='+tel+'&comment='+comment+'&url='+thisurl,
		success: function (data){
			$('#request-form').fadeOut('0.1',function(){
			$('#request-submit').fadeIn('0.1');
			});
			$(".tel").val('ТЕЛЕФОН*');
			$(".name").val('ВАШЕ ИМЯ');
			$(".comment").val('');
			$('#comment-form').hide();
			yaCounterSOMEID.hit('http://'+servername+thisurl+'#requestsent',null,null);
		}
	});
}


Проблема в том что исключительно только в IE код счетчика цели(yaCounterSOMEID.hit('http://'+servername+thisurl+'#requestsent',null,null) в скрипте с аяксом вызывает ошибку и соответственно не отправляет данные в метрику. Ошибка - yaCounterSOMEID определение отсутствует.

Я далеко не спец в js, так нахватался верхов. Помогите плиз.
Ответить с цитированием
  #2 (permalink)  
Старый 17.01.2012, 22:29
Интересующийся
Отправить личное сообщение для vamfirius Посмотреть профиль Найти все сообщения от vamfirius
 
Регистрация: 01.07.2010
Сообщений: 29

Люди помогите плиз я в отчаянии. Хотябы ответьте на вопрос - почему я вижу объект Ya внутри этого кода -

(function(w, c) {
    (w[c] = w[c] || []).push(function() {
        try {
            w.yaCounter11522443 = new Ya.Metrika({id:11522443, enableAll: true, webvisor:true,params:window.yaParams||{ }});
        }
        catch(e) { }
    });
})(window, "yandex_metrika_callbacks");


а за пределами не вижу, т.е. alert(Ya); вызывает ошибку.
Ответить с цитированием
  #3 (permalink)  
Старый 17.01.2012, 22:34
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Давайте ссылку на сайт.
Ответить с цитированием
  #4 (permalink)  
Старый 17.01.2012, 22:53
Интересующийся
Отправить личное сообщение для vamfirius Посмотреть профиль Найти все сообщения от vamfirius
 
Регистрация: 01.07.2010
Сообщений: 29

http://выгодное-каско.рф
Ответить с цитированием
  #5 (permalink)  
Старый 17.01.2012, 22:57
Интересующийся
Отправить личное сообщение для vamfirius Посмотреть профиль Найти все сообщения от vamfirius
 
Регистрация: 01.07.2010
Сообщений: 29

Я откопал еще кое что. Объект метрики yaCounter11522443 вообще не создается в IE - в extption ловится - Данный объект не содержит такого свойства или метода( Что получается? Проблемы у яндекса?) Или все-таки это как-то связано с оставшимся кривым кодом у меня на сайте?
Ответить с цитированием
  #6 (permalink)  
Старый 17.01.2012, 23:04
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Начнём с того, что у вас не тот код стоит, который выдаёт Метрика. Вы зачем строчку одну вверх подняли?
Верните всё, как было, потом будем дальше смотреть.
Ответить с цитированием
  #7 (permalink)  
Старый 17.01.2012, 23:07
Интересующийся
Отправить личное сообщение для vamfirius Посмотреть профиль Найти все сообщения от vamfirius
 
Регистрация: 01.07.2010
Сообщений: 29

Если вы об этой строке - <script src="//mc.yandex.ru/metrika/watch.js" type="text/javascript" defer="defer"></script> - вернул. Почемуто мне показалось что так логичнее. Ведь откуда-то же должен браться Ya.Metrica...
Ответить с цитированием
  #8 (permalink)  
Старый 17.01.2012, 23:13
Интересующийся
Отправить личное сообщение для vamfirius Посмотреть профиль Найти все сообщения от vamfirius
 
Регистрация: 01.07.2010
Сообщений: 29

Все равно кидает exception
Ответить с цитированием
  #9 (permalink)  
Старый 17.01.2012, 23:30
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Уберите пока defer="defer", хуже не станет, но заработает.
Ответить с цитированием
  #10 (permalink)  
Старый 17.01.2012, 23:34
Интересующийся
Отправить личное сообщение для vamfirius Посмотреть профиль Найти все сообщения от vamfirius
 
Регистрация: 01.07.2010
Сообщений: 29

Списибо, за попытку помочь, но я только что решил проблему.
Нужно было добавить перед вызовом
yaCounter11522443.hit('http://'+servername+thisurl+'#requestsent',null,null);
строчку -
yaCounter11522443 = new Ya.Metrika({id:11522443, enableAll: true, webvisor:true,params:window.yaParams||{ }});

Оказывается код счетчика не создает объект yaCounter11522443 в IE. Правда интересно было бы узнать почему, так в отличие от остальных браузеров.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с облостью видимости czp Общие вопросы Javascript 11 10.11.2011 21:21
Проблема с областью видимости переменных ArmagedDance Элементы интерфейса 2 07.09.2011 09:34
mootools: Проблема с работой объекта в другом классе mrfanat Библиотеки/Тулкиты/Фреймворки 0 01.04.2011 10:08