mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 10:45:47 +00:00
refactored
This commit is contained in:
parent
0fa6fea33a
commit
8b14ded04e
2 changed files with 54 additions and 29 deletions
|
|
@ -102,6 +102,26 @@ var CloudCommander, Util,
|
|||
return lRet;
|
||||
};
|
||||
|
||||
/**
|
||||
* safe remove event listener
|
||||
* @param pType
|
||||
* @param pListener
|
||||
* @param pUseCapture
|
||||
* @param pElement {document by default}
|
||||
*/
|
||||
DOM.removeListener = function(pType, pListener, pUseCapture, pElement){
|
||||
var lRet = this;
|
||||
|
||||
(pElement || window).removeEventListener(
|
||||
pType,
|
||||
pListener,
|
||||
pUseCapture || false
|
||||
);
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* safe add event keydown listener
|
||||
* @param pListener
|
||||
|
|
@ -417,8 +437,9 @@ var CloudCommander, Util,
|
|||
lFunc = pParams_o.func,
|
||||
lOnError,
|
||||
lAsync = pParams_o.async,
|
||||
lParent = pParams_o.parent,
|
||||
lParent = pParams_o.parent || document.body,
|
||||
lInner = pParams_o.inner,
|
||||
lStyle = pParams_o.style,
|
||||
lNotAppend = pParams_o.not_append;
|
||||
|
||||
if ( Util.isObject(lFunc) ){
|
||||
|
|
@ -429,10 +450,10 @@ var CloudCommander, Util,
|
|||
if(!lID && lSrc)
|
||||
lID = DOM.getIdBySrc(lSrc);
|
||||
|
||||
var element = DOM.getById(lID);
|
||||
var lElement = DOM.getById(lID);
|
||||
|
||||
/* если скрипт еще не загружен */
|
||||
if(!element){
|
||||
if(!lElement){
|
||||
if(!lName && lSrc){
|
||||
|
||||
var lDot = lSrc.lastIndexOf('.'),
|
||||
|
|
@ -449,23 +470,23 @@ var CloudCommander, Util,
|
|||
return {code: -1, text: 'name can not be empty'};
|
||||
}
|
||||
}
|
||||
element = document.createElement(lName);
|
||||
lElement = document.createElement(lName);
|
||||
|
||||
if(lID)
|
||||
element.id = lID;
|
||||
lElement.id = lID;
|
||||
|
||||
if(lClass)
|
||||
element.className = lClass;
|
||||
lElement.className = lClass;
|
||||
|
||||
/* if working with external css
|
||||
* using href in any other case
|
||||
* using src
|
||||
*/
|
||||
if(lName === 'link'){
|
||||
element.href = lSrc;
|
||||
element.rel = 'stylesheet';
|
||||
lElement.href = lSrc;
|
||||
lElement.rel = 'stylesheet';
|
||||
}else
|
||||
element.src = lSrc;
|
||||
lElement.src = lSrc;
|
||||
|
||||
/*
|
||||
* if passed arguments function
|
||||
|
|
@ -474,16 +495,13 @@ var CloudCommander, Util,
|
|||
* if object - then onload and onerror
|
||||
*/
|
||||
|
||||
if( Util.isFunction(lFunc) )
|
||||
element.onload = lFunc;
|
||||
|
||||
/* if element (js/css) will not loaded
|
||||
* it would be removed from DOM tree
|
||||
* and error image would be shown
|
||||
*/
|
||||
element.onerror = (function(){
|
||||
(pParams_o.parent || document.body)
|
||||
.removeChild(element);
|
||||
var lLoad = function(pEvent){
|
||||
DOM.removeListener('load', lLoad, false, lElement);
|
||||
Util.exec(lFunc, pEvent);
|
||||
},
|
||||
|
||||
lError = function(){
|
||||
lParent.removeChild(lElement);
|
||||
|
||||
DOM.Images.showError({
|
||||
responseText: 'file ' +
|
||||
|
|
@ -493,21 +511,22 @@ var CloudCommander, Util,
|
|||
});
|
||||
|
||||
Util.exec(lOnError);
|
||||
});
|
||||
};
|
||||
|
||||
if(pParams_o.style){
|
||||
element.style.cssText = pParams_o.style;
|
||||
}
|
||||
DOM.addListener('load', lLoad, false, lElement);
|
||||
DOM.addListener('error', lError, false, lElement);
|
||||
|
||||
if(lStyle)
|
||||
lElement.style.cssText = lStyle;
|
||||
|
||||
if(lAsync || lAsync === undefined)
|
||||
element.async = true;
|
||||
lElement.async = true;
|
||||
|
||||
if(!lNotAppend)
|
||||
(lParent || document.body).appendChild(element);
|
||||
lParent.appendChild(lElement);
|
||||
|
||||
if(lInner){
|
||||
element.innerHTML = lInner;
|
||||
}
|
||||
if(lInner)
|
||||
lElement.innerHTML = lInner;
|
||||
}
|
||||
/* если js-файл уже загружен
|
||||
* запускаем функцию onload
|
||||
|
|
@ -515,7 +534,7 @@ var CloudCommander, Util,
|
|||
else
|
||||
Util.exec(lFunc);
|
||||
|
||||
return element;
|
||||
return lElement;
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -58,6 +58,12 @@ var Util, DOM, $;
|
|||
return lRet;
|
||||
};
|
||||
|
||||
if(document.removeEventListener){
|
||||
DOM.removeListener = function(pType, pListener, pCapture, pElement){
|
||||
$(pElement || window).unbind(pType, pListener);
|
||||
};
|
||||
}
|
||||
|
||||
if(!document.getElementsByClassName){
|
||||
DOM.getByClass = function(pClass, pElement){
|
||||
var lClass = '.' + pClass,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue