Я хочу отслеживать клики по элементам AdSense на моей странице. Чтобы добиться этого, я сосредоточил внимание на объекте окна и, если он потерял фокус, я проверяю, находилась ли мышь в области iFrame AdSense. Затем я снова вернусь к фокусу.
Это работает. Но в Chrome он работает только один раз. Поэтому, если я нажимаю на объявление adSense (открытие на новой вкладке), а затем я нажимаю на другое, событие больше не запускается.
Если я запускаю $ (window) .focus() в консоли, событие onBlur снова запускается, но функция $ (window) .focus(), выполненная из моего кода, не оказывает никакого эффекта. Я тоже пробовал это с тайм-аутом, но безуспешно.
Любые идеи?
trackElements("#contentAdSense, #fallbackAdSense, #sidebarAdSense");
function trackElements (elementsToTrack)
{
var isOverElement = false;
$(window).focus();
$(elementsToTrack).mouseenter(function(e){
isOverElement = e.currentTarget.id;
});
$(elementsToTrack).mouseleave(function(e){
isOverElement = false;
});
$(window).blur(function(e){
windowLostBlur();
});
function windowLostBlur()
{
if (isOverElement)
{
console.log(isOverElement);
$(window).focus();
}
};
};
Упрощенная версия: https://jsfiddle.net/327skdns/2/
пожалуйста, вы можете создать скрипку, чтобы мы можете проверить хром? – Drone
- упрощенная версия -> https://jsfiddle.net/327skdns/2/ – hwechselberg