JavaScript 개체 중심 프로그래밍 실전 01 JavaScript Resource Loader
6120 단어 JavaScript
// JavaScriptLoader-Singleton-,Timo.Lee,[email protected]
var Timo = window.Timo || {};
Timo.Html=window.Timo.Html || {};
Timo.Html.ResourceLoader = (function() {
//Private
function RegisterJavaScript(URL) {
var JsFile = document.createElement("script");
JsFile.setAttribute("type", "text/javascript");
JsFile.setAttribute("src", URL);
document.getElementsByTagName("head")[0].appendChild(JsFile);
return JsFile;
} //eo end
function RegisterCss(URL) {
var CssFile = document.createElement("link");
CssFile.setAttribute("rel", "stylesheet");
CssFile.setAttribute("type", "text/css");
CssFile.setAttribute("href", URL);
document.getElementsByTagName("head")[0].appendChild(CssFile);
return CssFile;
} //eo end
function ReplaceJavaScript(OriginalURL, NewURL) {
var scriptList = document.getElementsByTagName("script");
for (var i = scriptList.length; i >= 0; i--) {
if (scriptList[i] && scriptList[i].getAttribute("src") != null && scriptList[i].getAttribute("src").indexOf(OriginalURL) != -1) {
var newScript = RegisterJavaScript(NewURL);
scriptList[i].parentNode.replaceChild(newScript, scriptList[i]);
}
}
} //eo end
function ReplaceCss(OriginalURL, NewURL) {
var cssList = document.getElementsByTagName("link");
for (var i = cssList.length; i >= 0; i--) {
if (cssList[i] && cssList[i].getAttribute("href") != null && cssList[i].getAttribute("href").indexOf(OriginalURL) != -1) {
var newCss = RegisterCss(NewURL);
cssList[i].parentNode.replaceChild(newCss, cssList[i]);
}
}
} //eo end
function RemoveJavaScript(URL) {
var scriptList = document.getElementsByTagName("script");
for (var i = scriptList.length; i >= 0; i--) {
if (scriptList[i] && scriptList[i].getAttribute("src") != null && scriptList[i].getAttribute("src").indexOf(URL) != -1) {
scriptList[i].parentNode.removeChild(scriptList[i]);
}
}
} //eo end
function RemoveCss(URL) {
var cssList = document.getElementsByTagName("link");
for (var i = cssList.length; i >= 0; i--) {
if (cssList[i] && cssList[i].getAttribute("href") != null && cssList[i].getAttribute("href").indexOf(URL) != -1) {
cssList[i].parentNode.removeChild(cssList[i]);
}
}
} //eo end
return {
RESOURCE_TYPE_CSS: "css",
RESOURCE_TYPE_JavaScript: "javascript",
//pulibc
LoadResource: function(URL, ResourceType) {
if (!ResourceType) {
new Error("Missing Parameter ResourceType,The ResourceType would be [css] or [javascript].");
return;
}
if (!URL || URL == "") {
new Error("Missing Parameter URL.");
return;
}
switch (ResourceType) {
case "javascript":
RegisterJavaScript(URL);
break;
case "css":
RegisterCss(URL);
break;
default:
break;
}
} //eo end
,
//public
ReplaceResource: function(URL, ResourceType) {
if (!ResourceType) {
new Error("Missing Parameter ResourceType,The ResourceType would be [css] or [javascript].");
return;
}
if (!URL || URL == "") {
new Error("Missing Parameter URL.");
return;
}
switch (ResourceType, OriginalURL, NewURL) {
case "javascript":
ReplaceJavaScript(OriginalURL, NewURL);
break;
case "css":
ReplaceCss(OriginalURL, NewURL);
break;
default:
break;
}
} // eo end
,
//public
RemoveResource: function(URL, ResourceType) {
if (!ResourceType) {
new Error("Missing Parameter ResourceType,The ResourceType would be [css] or [javascript].");
return;
}
if (!URL || URL == "") {
new Error("Missing Parameter URL.");
return;
}
switch (ResourceType) {
case "javascript":
RemoveJavaScript(URL);
break;
case "css":
RemoveCss(URL);
break;
default:
break;
}
} //eo end
};
})();
사용 방법:
<title>Html Resource Loader Demo</title>
<script type="text/javascript" src="../JavaScript/Utils/Timo.Html.ResourceLoader.js"></script>
<script type="text/javascript">
window.onload = function() {
//AppInit
Timo.Html.ResourceLoader.LoadResource("/JavaScript/Test/Demo.js", Timo.Html.ResourceLoader.RESOURCE_TYPE_JavaScript);
}
</script>
END…..
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.