На основі відповіді Мухаммеда Радвана я придумав таке рішення jQuery. В основному, це те, що слідкуйте за тим, що люблять люди з iFrame. Потім, якщо вікно розмивається, що, швидше за все, означає, що користувач натиснув банер iframe.
iframe слід ввести в div з ідентифікатором, щоб переконатися, що ви знаєте, на який кадр користувач натиснув:
<div class='banner' bannerid='yyy'>
<iframe src='http://somedomain.com/whatever.html'></iframe>
<div>
так:
$(document).ready( function() {
var overiFrame = -1;
$('iframe').hover( function() {
overiFrame = $(this).closest('.banner').attr('bannerid');
}, function() {
overiFrame = -1
});
... це зберігає overiFrame на -1, коли не зависає iFrames, або встановлено 'bannerid' у обгортковому поділі, коли накладено рамку iframe. Все, що вам потрібно зробити, це перевірити, чи встановлено "overiFrame", коли вікно розмивається, наприклад: ...
$(window).blur( function() {
if( overiFrame != -1 )
$.post('log.php', {id:overiFrame}); /* example, do your stats here */
});
});
Дуже елегантне рішення з незначним недоліком: якщо користувач натискає ALT-F4 під час наведення миші на iFrame, він зафіксує це як клацання. Це сталося лише у FireFox, хоча IE, Chrome і Safari не зареєстрували його.
Ще раз дякую Мухаммед, дуже корисне рішення!