|
Subject: All browser solution
Name: Jeremy
Date: 11/28/2009 12:17:07 AM
Comment: Solution for all browsers:
(function($)
{
$.fn.src = function(url, onLoad, options)
{
var timer,
iframe = $(this),
defaults = {
timeout: 0,
onTimeout: null,
onDOMReady: null,
},
startTime,
timer,
duration;
opts = $.extend(defaults, options);
startTime = +new Date;
if (opts.timeout)
{
timer = setTimeout(function()
{
iframe.load(null);
if (opts.onTimeout)
opts.onTimeout(iframe, opts.timeout);
}, opts.timeout);
}
if (opts.onDOMReady)
{
iframe.ready(function()
{
duration = (+new Date - startTime);
opts.onDOMReady(iframe, duration);
});
}
var onloadHandler = function()
{
duration = +new Date - startTime;
if (timer)
clearTimeout(timer);
if (onLoad)
onLoad(iframe, duration);
}
iframe.bind('load', onloadHandler);
iframe.attr("src", url);
opts.completeReadyStateChanges=0;
return iframe;
}
})(jQuery); |
|