Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2019, 15:44   #1
Aleksandr201919
Новичок
Джуниор
 
Регистрация: 04.09.2019
Сообщений: 3
По умолчанию отслеживание клика по iframe

Всем привет! Помогите пжл разобраться с такой проблемой: на сайте есть 7 блоков адсенс , хочу отслеживать клики по ним. Использую такое решение:

<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
/*! jquery.iframetracker v2.1.0 | https://github.com/vincepare/iframeTracker-jquery | Copyright (c) 2013-2018 Vincent Paré | Licensed Apache-2.0 */
!function(e,r){"function"==typeof define&&define.amd?define(["jquery"],function(e){return r(e)}):"object"==typeof module&&module.exports?module.expor ts=r(require("jquery")):r(e.jQuery) }(this,function(e){!function(e){e.f n.iframeTracker =function(r){"function"==typeof r&&(r={blurCallback:r});var t=this.get();if(null===r||!1===r)e. iframeTracker.untrack(t);else{if("o bject"!=typeof r)throw new Error("Wrong handler type (must be an object, or null|false to untrack)");e.iframeTracker.track(t, r)}return this},e.iframeTracker={focusRetriev er:null,focusRetrieved:!1,handlersL ist:[],isIE8AndOlder:!1,init:function(){t ry{!0===e.browser.msie&&e.browser.v ersion<9&&(this.isIE8AndOlder=!0)}c atch(e){try{nav igator.userAgent.match(/(msie) ([\w.]+)/i)[2]<9&&(this.isIE8AndOlder=!0)}catch(e ){}}if(e(window).focus(),e(window). blur(function(r){e.iframeTracker.wi ndowLoseFocus(r )}),e("body").append('<div style="position:fixed; top:0; left:0; overflow:hidden;"><input style="position:absolute; left:-300px;" type="text" value="" id="focus_retriever" readonly="true" /></div>'),this.focusRetriever=e("#focu s_retriever"),this.focusRetrieved=! 1,this.isIE8AndOlder){this.focusRet riever.blur(fun ction(r){r.stopPropagation(),r.prev entDefault(),e.iframeTracker.window LoseFocus(r)}),e("body").click(func tion(r){e(windo w).focus()}),e("form").click(functi on(e){e.stopPropagation()});try{e(" body").on("click","form",function(e ){e.stopPropaga tion()})}catch(e){console.log("[iframeTracker] Please update jQuery to 1.7 or newer. (exception: "+e.message+")")}}},track:function( r,t){t.target=r,e.iframeTracker.han dlersList.push(t),e(r).bind("mouseo ver",{handler:t },e.iframeTracker.mouseoverListener ).bind("mouseout",{handler:t},e.ifr ameTracker.mouseoutListener)},untra ck:function(r){ if("function"==typeof Array.prototype.filter){e(r).each(f unction(r){e(this).unbind("mouseove r",e.iframeTracker.mouseoverListene r).unbind("mous eout",e.iframeTracker.mouseoutListe ner)});var t=function(e){return null!==e};for(var i in this.handlersList){for(var o in this.handlersList[i].target)-1!==e.inArray(this.handlersList[i].target[o],r)&&(this.handlersList[i].target[o]=null);this.handlersList[i].target=this.handlersList[i].target.filter(t),0===this.handlers List[i].target.length&&(this.handlersList[i]=null)}this.handlersList=this.handl ersList.filter(t)}else console.log("Your browser doesn't support Array filter, untrack disabled")},mouseoverListener:funct ion(r){r.data.handler.over=!0,e.ifr ameTracker.retrieveFocus();try{r.da ta.handler.over Callback(this,r)}catch(e){}},mouseo utListener:function(r){r.data.handl er.over=!1,e.iframeTracker.retrieve Focus();try{r.d ata.handler.outCallback(this,r)}cat ch(e){}},retrieveFocus:function(){d ocument.activeElement&&"IFRAME"===d ocument.activeE lement.tagName&&(e.iframeTracker.fo cusRetriever.focus(),e.iframeTracke r.focusRetrieved=!0)},windowLoseFoc us:function(e){ for(var r in this.handlersList)if(!0===this.hand lersList[r].over)try{this.handlersList[r].blurCallback(e)}catch(e){}}},e(doc ument).ready(function(){e.iframeTra cker.init()})}(e)});
</script>


<script>
jQuery(document).ready(function($){
$('.ad1').iframeTracker({
blurCallback: function(){
window.dataLayer.push({
'event':'adsens_click',
'event-adsens-category':'adsens',
'event-adsens-action':'ad1'
});
}
});
$('.ad2').iframeTracker({
blurCallback: function(){
window.dataLayer.push({
'event':'adsens_click',
'event-adsens-category':'adsens',
'event-adsens-action':'ad2'
});
}
});
$('.ad3').iframeTracker({
blurCallback: function(){
window.dataLayer.push({
'event':'adsens_click',
'event-adsens-category':'adsens',
'event-adsens-action':'ad3'
});
}
});
$('.ad4').iframeTracker({
blurCallback: function(){
window.dataLayer.push({
'event':'adsens_click',
'event-adsens-category':'adsens',
'event-adsens-action':'ad4'
});
}
});
$('.ad5').iframeTracker({
blurCallback: function(){
window.dataLayer.push({
'event':'adsens_click',
'event-adsens-category':'adsens',
'event-adsens-action':'ad5'
});
}
});
$('.ad6').iframeTracker({
blurCallback: function(){
window.dataLayer.push({
'event':'adsens_click',
'event-adsens-category':'adsens',
'event-adsens-action':'ad6'
});
}
});
$('.ad7').iframeTracker({
blurCallback: function(){
window.dataLayer.push({
'event':'adsens_click',
'event-adsens-category':'adsens',
'event-adsens-action':'ad7'
});
}
});
$('.contentads').iframeTracker({
blurCallback: function(){
window.dataLayer.push({
'event':'adsens_click',
'event-adsens-category':'adsens',
'event-adsens-action':'contentads'
});
}
});
});
</script>

Работает (вызываю соответствующее событие при клике на каждый блок, чтоб знать какой блок кликнули), но идут и ложные клики. Появилась идея, вызывать событие о клике, если при этом юзер еще и ушел на новую вкладку (именно так и происходит, если юзер кликнул по объявлению Адсенс). Вот нашел решение http://www.manhunter.ru/webmaster/11....html#comments . Не подскажите, пжл, как это все до кучи слепить? И будет ли это работать?
Aleksandr201919 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
по два клика serres PHP 2 02.06.2010 12:04
отслеживание клика в паскале insan00b Паскаль, Turbo Pascal, PascalABC.NET 1 12.04.2010 16:41
должен подгрузиться скрипт который бы создал и вставил в этот див <iframe></iframe> Beni JavaScript, Ajax 1 05.08.2009 14:30
Определение длины пути от клика до клика - как??? Enya Помощь студентам 0 11.05.2009 12:54
Координаты клика snake-as JavaScript, Ajax 0 24.02.2008 15:44