Мелкая правка кода JS
Здравствуйте.
Нужно поправить код JS Вот исходник 01 <script type="text/javascript"> 02 03 function getParameterByName(name) { 04 name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]'); 05 var regexS = '[\\?&]' + name + '=([^&#]*)'; 06 var regex = new RegExp(regexS, 'i'); 07 var results = regex.exec(window.location.search); 08 if (results == null) { 09 return ''; 10 } else { 11 return decodeURIComponent(results[1].replace(/\+/g, ' ')); 12 } 13 } 14 15 var promoId = getParameterByName('promoid'); 16 17 var _gaq = _gaq || []; 18 _gaq.push(['_setAccount', 'UA-XXXXXXX-X']); 19 20 21 _gaq.push(['_setDomainName', 'domen.ru']); 22 if (promoId !== '') { 23 _gaq.push(['_setCustomVar', 1, 'promoId', promoId, 2]); 24 } 25 26 _gaq.push(['_initData']); 27 28 function readcookie(name) { // функция чтения куки 29 var re = new RegExp("(?:^| )" + name + "=([^;]*)", "i"); 30 var matches = document.cookie.match(re); 31 return matches && matches.length == 2 ? matches[1] : ""; 32 }; 33 34 if (document.referrer.match(/^http[s]?:\/\/(www\.|)domen\.ru/)) {} // переход со страницы нашего сайта - ничего не делаем 35 else 36 { 37 if (document.referrer=='') 38 { // нет источника посещения 39 if (document.cookie.indexOf('__utmz=')) { // проверка существования куки __utmz 40 var utmz = readcookie('__utmz'); // читаем значение куки 41 var utmz2 = utmz.replace (/\utmcsr.*/, 'utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)'); // переписываем (даже в случае идентичности) 42 document.cookie = '__utmz=' + utmz2+'; path=/; domain=.domen.ru'; // обновляем 43 } 44 } 45 else 46 { 47 var re2= new RegExp("^http[s]?:\/\/(www\.|)([^\/]*)\/([^\?]*)", "i"); 48 var domenar = document.referrer.match(re2); 49 var domen=RegExp.$2; var linkref=RegExp.$3; 50 if (domen.match(/^yandex\./) || domen.match(/^google\./) || domen.match(/^bing\./) || domen.match(/^search\./) || domen.match(/^rambler\./) || domen.match(/^yahoo\./) || domen.match(/^msn\./) || domen.match(/^ask\./) || domen.match(/^aol\./)) {} 51 else 52 { 53 if (document.cookie.indexOf('__utmz=')) { 54 var utmz = readcookie('__utmz'); 55 var utmz2 = utmz.replace (/\utmcsr.*/, 'utmcsr='+domen+'|utmccn=(referral)|utmcmd=referral|utmcct=/'+linkref+'') ; 56 document.cookie = '__utmz=' + utmz2+'; path=/; domain=.domen.ru'; 57 } 58 } 59 } 60 } 61 62 _gaq.push(['_trackPageview']); 63 64 (function() { 65 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 66 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 67 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 68 })(); 69 70 71 </script> Нужно поправить правило в строке 34 для мобильной версии сайта и обычной. Ну или может еще гдето подправить в коде. Т.е. нужно правило - если рефер НАШ домен или поддомен - domen.ru , m.domen.ru, то ничего не делаем 34 if (document.referrer.match(/^http[s]?:\/\/(www\.|)domen\.ru/)) {} // переход со страницы нашего сайта - ничего не делаем У нас 2 шапки для мобильной и обычной версии и там используется этот код. Нужно общее правило для вставки кода в обе шапки, чтобы был указан домен-поддомен - при заходе с которых ничего не менялось бы в кукисах, чтобы мы не путались в статистике Гугл аналитикса при переходах с мобильной на обычную версию и наоборот. Пдскажите кто возьмется и сколько это будет стоить. |
не совсем понимаю как правильно прописать все в 34 строке, чтобы учитывался домен и поддомен. В остальном коде можно не править, достаточно указанную строчку.
|
попробуйте так http://learn.javascript.ru/play/t8Bwuc
|
ок, спасибо попробую
|
Цитата:
http: //www.somesite.ru/test.html?javascript.ru |
Попробуйте:
/^https?:\/\/([^?\/.]+\.)*javascript\.ru($|[?#\/])/ |
Цитата:
2. Цитата:
3. на мой взгляд не правильно пытаться решить эту задачу в одну регу а) отсекаем основной адрес http://learn.javascript.ru/forum/job...a-koda-js.html -> http://learn.javascript.ru б) смотрим, что на конце *примерно так |
Цитата:
В referrer http:// всегда есть, даже когда пришли с того же домена, так что на это можно (и нужно) рассчитывать, иначе, если проверять адрес не с самого начала, то где гарантия что мы найдем часть доменного имени, а не имя локального файла? |
мной был предложен такой вариант для основного и мобильного, но понял ли меня ТС незнаю
alert(!!"http://www.somesite.ru/test.html?javascript.ru".match(/^http[s]?:\/\/(www\.|)(learn\.|)javascript\.ru/)) alert(!!"http://www.javascript.ru".match(/^http[s]?:\/\/(www\.|)(learn\.|)javascript\.ru/)) alert(!!"http://learn.javascript.ru".match(/^http[s]?:\/\/(www\.|)(learn\.|)javascript\.ru/)) |
А зачем буковка s после http в квадратных скобках?
|
Часовой пояс GMT +3, время: 13:27. |