Package Exports
- jquery.iframetracker
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (jquery.iframetracker) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
iframeTracker jQuery Plugin
iframeTracker is a jQuery plugin that allow to track clicks on iframes.
This is very useful to :
- track clicks on Google Adsense (google uses iframes to display ads)
- track clicks on Facebook Like buttons
- track clicks on Youtube embed video player
- ... and any other iframe !
Try it now : demo.
How does it work ?
Since it's impossible to read iframe content (DOM) from the parent page due to the same origin policy, tracking is based on the blur event associated to a page/iframe boundary monitoring system telling over which iframe is the mouse cursor at any time.
How to use ?
Match the iframe elements you want to track with a jQuery selector and call iframeTracker
with a callback function that will be called when a click on the iframe is detected :
jQuery(document).ready(function($){
$('.iframe_wrap iframe').iframeTracker({
blurCallback: function(event) {
// Do something when the iframe is clicked (like firing an XHR request)
}
});
});
You can also just pass a function, that will be then registered as the blurCallback
:
jQuery(document).ready(function($){
$('.iframe_wrap iframe').iframeTracker(function(event) {
// Do something when the iframe is clicked (like firing an XHR request)
});
});
Advanced tracking
jQuery(document).ready(function($){
$('.iframe_wrap iframe').iframeTracker({
blurCallback: function(event) {
// Do something when iframe is clicked (like firing an XHR request)
// You can know which iframe element is clicked via this._overId
},
overCallback: function(element, event) {
this._overId = $(element).parents('.iframe_wrap').attr('id'); // Saving the iframe wrapper id
},
outCallback: function(element, event) {
this._overId = null; // Reset hover iframe wrapper id
},
_overId: null
});
});
Cancel tracking
You can remove a tracker attached to an iframe by calling .iframeTracker()
with either false
or null
:
$('#iframe_red_1 iframe').iframeTracker(false);
$('#iframe_red_2 iframe').iframeTracker(null);
Full tutorial available here (it's in French).
Tested on jQuery 1.4.4
to 1.11.0
, 2.1.4
& 3.2.1
.
Install
With npm :
npm install jquery.iframetracker
With bower :
bower install jquery.iframetracker
About mobile devices
This plugin doesn't work on mobile devices such as smartphones and tablets, because this hardware uses a touchscreen instead of a mouse as click input. This design makes the boundary monitoring trick ineffective.
Donate
Donations are welcome :) via PayPal, Flattr or Bitcoin at this address : 3G5uTti2JPAT738uDeQXjrN7tUj2NZjt6M
or by flashing this lovely QR code :