Форум программистов, компьютерный форум, киберфорум
Web-мастеринг
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 18.06.2009
Сообщений: 119
1

отслеживание клика по iframe

04.09.2019, 13:11. Показов 1987. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Помогите пжл разобраться с такой проблемой: на сайте есть 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.exports=r(require("jquery")):r(e.jQuery)}(this,fun ction(e){!function(e){e.fn.iframeTracker=function(r){"function"==typeof r&&(r={blurCallback:r});var t=this.get();if(null===r||!1===r)e.iframeTracker.untrack(t);else{if("object"!=ty peof 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={focusRetriever:null,focusRetrieved:!1,handlersList:[],isIE8AndOlder:!1,init:function(){try{!0===e.browser.msie&&e.browser.version<9&& (this.isIE8AndOlder=!0)}catch(e){try{navigator.userAgent.match(/(msie) ([\w.]+)/i)[2]<9&&(this.isIE8AndOlder=!0)}catch(e){}}if(e(window).focus(),e(window).blur(funct ion(r){e.iframeTracker.windowLoseFocus(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("#focus_retriever"),this.focusRetrieved=!1,this.isI E8AndOlder){this.focusRetriever.blur(function(r){r.stopPropagation(),r.preventDe fault(),e.iframeTracker.windowLoseFocus(r)}),e("body").click(function(r){e(windo w).focus()}),e("form").click(function(e){e.stopPropagation()});try{e("body").on( "click","form",function(e){e.stopPropagation()})}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.handlersList. push(t),e(r).bind("mouseover",{handler:t},e.iframeTracker.mouseoverListener).bin d("mouseout",{handler:t},e.iframeTracker.mouseoutListener)},untrack:function(r){ if("function"==typeof Array.prototype.filter){e(r).each(function(r){e(this).unbind("mouseover",e.ifram eTracker.mouseoverListener).unbind("mouseout",e.iframeTracker.mouseoutListener)} );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.handlersList[i].target.length&&(this.handlersList[i]=null)}this.handlersList=this.handlersList.filter(t)}else console.log("Your browser doesn't support Array filter, untrack disabled")},mouseoverListener:function(r){r.data.handler.over=!0,e.iframeTracker .retrieveFocus();try{r.data.handler.overCallback(this,r)}catch(e){}},mouseoutLis tener:function(r){r.data.handler.over=!1,e.iframeTracker.retrieveFocus();try{r.d ata.handler.outCallback(this,r)}catch(e){}},retrieveFocus:function(){document.ac tiveElement&&"IFRAME"===document.activeElement.tagName&&(e.iframeTracker.focusRe triever.focus(),e.iframeTracker.focusRetrieved=!0)},windowLoseFocus:function(e){ for(var r in this.handlersList)if(!0===this.handlersList[r].over)try{this.handlersList[r].blurCallback(e)}catch(e){}}},e(document).ready(function(){e.iframeTracker.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/webmas... l#comments . Не подскажите, пжл, как это все до кучи слепить? И будет ли это работать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.09.2019, 13:11
Ответы с готовыми решениями:

Отслеживание клика вне формы
Для от ловли кликов использую: int o = 0; void this_MouseClick(object sender,...

Отслеживание клика мыши вне формы
Всем доброго времени суток. Мне необходимо сделать что то вроде счетчика кликов, то есть...

Отслеживание клика или просмотра рекламы от AdMob
как отслеживать что пользователь кликнул по рекламе, или посмотрел её? делаю так: функция...

Яндекс.Метрика Отслеживание события клика по элементу
Всем привет! Почему то не могу настроить js событие в метрике. Нужно, чтобы при клике на блок...

0
04.09.2019, 13:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.09.2019, 13:11
Помогаю со студенческими работами здесь

Отслеживание клика по кнопке окна на панели задач
Есть приложение с окном без заголовка (без WS_CAPTION) и оно некорректно обрабатывает клики по...

Как обрабатывать событие клика внутри iframe ?
Я пробовал так: &lt;iframe onclick=&quot;alert('click')&quot; width=&quot;560&quot; height=&quot;315&quot;...

Отслеживание клика мыши, и того что происходит при клике
Всем привет),помогите:cry:.Такая запара,надо отслеживать клик левой кнопки мыши,и если при клике...

Запрет правого клика мышкой при выводе файла в iframe
Доброго всем времени суток! Есть страница, на которой будут выводиться документы, хранящиеся в...

как сделать триггер клика (имитация клика)
Добрый день! У меня есть 2 менюшки на сайте с аналогичными ссылками. Пытаюсь сделать связь, чтобы...

Не срабатывают события из iframe при перетаскивании в этот iframe в Opera
Есть два фрейма. В первый вкладывается второй. При зажатии кнопки мыши на первом, если передвинуть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru