60 lines
1.1 KiB
JavaScript
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 );
|
|
}
|
|
}
|
|
};
|
|
})();
|