BrowzOS/rte/_source/core/imagecacher.js

60 lines
1.1 KiB
JavaScript

/*
Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
(function()
{
var loaded = {};
var loadImage = function( image, callback )
{
var doCallback = function()
{
img.removeAllListeners();
loaded[ image ] = 1;
callback();
};
var img = new CKEDITOR.dom.element( 'img' );
img.on( 'load', doCallback );
img.on( 'error', doCallback );
img.setAttribute( 'src', image );
};
/**
* Load images into the browser cache.
* @namespace
* @example
*/
CKEDITOR.imageCacher =
{
/**
* Loads one or more images.
* @param {Array} images The URLs for the images to be loaded.
* @param {Function} callback The function to be called once all images
* are loaded.
*/
load : function( images, callback )
{
var pendingCount = images.length;
var checkPending = function()
{
if ( --pendingCount === 0 )
callback();
};
for ( var i = 0 ; i < images.length ; i++ )
{
var image = images[ i ];
if ( loaded[ image ] )
checkPending();
else
loadImage( image, checkPending );
}
}
};
})();