मोहम्मद राडवान के जवाब के आधार पर मैं निम्नलिखित jQuery समाधान के साथ आया। मूल रूप से यह क्या करता है क्या iFrame लोग मँडरा रहे हैं का ट्रैक रखता है। फिर अगर विंडो में दोष है कि सबसे अधिक संभावना है कि उपयोगकर्ता ने iframe बैनर पर क्लिक किया है।
iframe को id के साथ div में रखा जाना चाहिए, यह सुनिश्चित करने के लिए कि आपको पता है कि उपयोगकर्ता किस iframe पर क्लिक करता है:
<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
});
... यह कोई भी iFrames hovered हैं, या एक iframe hovered है जब रैपिंग div में सेट 'बेनरिड' सेट पर overiFrame रहता है। आपको बस इतना देखना है कि अगर 'ब्लीडर' सेट किया जाता है तो विंडो ब्लर होती है, जैसे: ...
$(window).blur( function() {
if( overiFrame != -1 )
$.post('log.php', {id:overiFrame}); /* example, do your stats here */
});
});
एक मामूली नकारात्मक पहलू के साथ बहुत ही सुंदर समाधान: यदि कोई उपयोगकर्ता ALT-F4 दबाता है, जब iFrame पर माउस को मँडराता है, तो वह इसे एक क्लिक के रूप में लॉग करेगा। यह केवल फ़ायर्फ़ॉक्स में हुआ, हालांकि, IE, क्रोम और सफारी ने इसे पंजीकृत नहीं किया।
धन्यवाद फिर से मोहम्मद, बहुत उपयोगी समाधान!