>웹 프론트엔드 >JS 튜토리얼 >JavaScript 프레임워크 요약 개인 업무 경험_javascript 기술

JavaScript 프레임워크 요약 개인 업무 경험_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:51:261044검색

/**************************************************** * ************************************ 저자: Xiao Feng
QQ:77182997
MSN :xiaofengnet@hotmail.com
이메일:xiaofengnet@163.com
홈페이지: http://www.d369.net
저작권을 지켜주시고 많은 협조 부탁드립니다
버전: V 1.6.1
/******************************************** *********** *************************************** *
/*
은 XiaoFeng입니다. System은 Scroll 메서드를 추가합니다. [2009-02-18] V 1.4.1
는 Array에 메서드 Index를 추가합니다. [2009-04-09] V 1.4.2
String ,EndsWith 함수에 TrimStart, TrimEnd, Trim, StartsWith 추가[2009-04-09] V 1.4.3
Number에 toFixed 메소드를 추가하여 유지되는 소수 자릿수 구현 [2009-04-17] V 1.4 .4
파일의 이름과 파일을 얻기 위한 FileType 접미사 이름 [2009-04-20] V 1.4.5
XiaoFeng.Dialog는 선택 창과 저장 창을 엽니다. [2009-05-28] V 1.4.6
Object 클래스를 통해 각 객체에 getType 메소드를 추가합니다. 객체의 상위 노드를 가져옵니다. getParent[2009-06-04] V 1.4.7
getQuery(s) 메소드 업데이트 U의 기본값은 현재 값입니다. 주소 표시줄 주소, s는 추출되기 위해 전달된 매개변수입니다. getQuery(U,s) U 전달된 주소 s와 전달된 매개변수가 추출되도록 [2009-06-08] V 1.4.8
추가 String wTh 전폭을 반폭으로 변환하고 hTw 반폭을 전체 솔루션으로 변환하는 두 가지 방법 [2009-06-08 ] V 1.4.8
에서 ajax.Fun = function(){} 메소드를 변경했습니다. ajax 클래스를 처리할 때, 서버 핸들러의 에러 여부를 판단하는 ajax.Error 속성 [2009-06-09] V 1.4.9
String, Array, Object, Element 메소드를 다시 작성함 [ 2009-06-12] V 1.5.0
캡처 이벤트 소스 getElement XiaoFeng.getElement 추가 [2009-06-12] V 1.5.1
FF IE LoadXml()과 호환되도록 XML 로딩 함수 업데이트 [2009-06-12] V 1.5.2
무한 드롭다운 목록 기능 추가 SelectClass [2009-06-13] V 1.6.0
무한 드롭다운 목록 선택 시 해당 기능 추가 비어 있으면 선택한 값은 이전 레벨 드롭다운 목록의 값입니다. [2009-06-13] V 1.6.1
*/
/*==================================== === ============================================== === =
프레임워크 핵심 내용---------[기본 도구 클래스]
====================== ====== =========================================== ====== ===========
*/
if(!window.XiaoFeng || !XiaoFeng || typeof XiaoFeng == "정의되지 않음")var XiaoFeng = window. XiaoFeng = new Object() ;
var Prototype = {
버전: "1.4.9",
ScriptFragment: '(?:)((n|r|.)*?)(?:)',
emptyFunction: function(){} ,
K: 함수(e){return e}
}
/*=========================== ======= ========================================== ======= =====
【객체 클래스에 정적 메서드 추가】
생성 날짜: [2008-08-13]
객체 클래스에 정적 메서드 추가: 확장
* /
Object.extend = function(destination,source){
for(property in source)destination[property] = source[property];
return Destination; Object 클래스 메소드를 통해 각 객체에 대해 확장
Object.prototype.extend = function(object){return Object.extend.apply(this,[this,object]);}
/*===== ======= ========================================== ======= =============================
[배열에 속성 추가]
[ 생성일 2009-06-12]
배열에 추가 속성 추가
*/
Object.extend(Array.prototype,{
remove : function(N){//지정된 요소 제거
if(isNaN(N )||N>this.length)return false
for(var i=0,n=0;ithis.length -= 1;
}, add : function(v){//배열 요소 추가
for(var i=0; iif(this[i].toString() == v.toString()) break
this.push(v) },
index; : 함수(들){// 배열의 요소 인덱스를 지정합니다.
var FlagIndex = -1
for(var i = 0;i if(this; [i].toString() == s.toString()){FlagIndex = i; break;}
return FlagIndex; },
첫 번째: function(){return this[0];} ,//배열의 첫 번째 요소
last : function(){return this[this.length - 1];},//배열의 마지막 요소
clear : function(){this.length = 0; 반환;}//배열 요소 지우기
/*======================= ================================================== ============== ====
[문자열에 속성 추가]
[2009-06-12 작성]
문자열에 추가 속성 추가
*/
Object.extend(String.prototype ,{
len : function(){return this.replace(/[^x00-xff]/g,"ya").length;},//The 문자열 길이, 한자는 2
길이 : function(){
var M = 0
for(var i=0;iif (this.charCodeAt(i) > 255)
M = M 2;
else M = M 1
}
return M; function(s){return this.TrimStart(s).TrimEnd(s);},//시작 및 끝에서 지정된 문자 지우기
TrimStart: function(s){//시작에서 지정된 문자 지우기
if(!s)s = "\s ";
var TrimStartStr = new RegExp("^(" s ") ","g")
return this.replace(trimStartStr,"" );
},
TrimEnd : function(s){ //끝에서 지정된 문자를 지웁니다.
if (!s)s = "\s "
var TrimEndStr = new RegExp( "(" s ") $","g");
replace(trimEndStr,"");,
StartsWith : 함수{
if (!s)s = "\s";
var startWithStr = new RegExp("^(" s ")","g");
startWithStr.test(this)를 반환합니다.
},
EndsWith : 함수{
if (!s)s = "\s";
var endWithStr = new RegExp("(" s ")$","g");
endWithStr.test(this)를 반환합니다.
},
wTh : function(){//전체角转换半角
var s = "";
for(var i = 0;i s = this.charCodeAt(i) >= 65248?String.fromCharCode(this.charCodeAt(i) - 65248):this.charAt (나);
s를 반환합니다;
},
hTw : function(){//半角转换전체角
var s = "";
for(var i = 0;i s = this.charCodeAt(i) s를 반환합니다;
},
LeftStr : function(M){//左边指定长島字符
if(this.Length() > M){
var str = "";
for(var i=0;iif(this.charCodeAt(i) > 255)
M -= 2;
그 외
M -= 1;
str = this.substring(i,i 1);
if(M }
return str "...";
}그렇지 않으면
이것을 반환하세요.
},
stripTags : function(){return this.replace(/?[^>] >/gi, '');}
});
/*=========================================== =============================================
【取得数字小数点后几位】 [创建于 2009-06-12] */
object.extend (number.prototype, { tofixed : function (N){//格式化数字
if(arguments.length == 0)N = 2;
with(Math){var m = pow(10,Number(N));var s = ( round(this*m)/m).toString();}
if(s.indexOf('.') s = ".";
s = "000000000000000000000000000000";
} return s.substr(0,s.indexOf('.') N 1)
}
});
/*=========================================== ==========================================
【获取一个指定ID의 유형】
创建于[2005-05-03]
document.getElementById(Id)获取一个指determinidid结点, 是这个方法으로 快捷方式와 扩 확장을 더 많이 설정 ㅋㅋㅋ
数返回一个对象数组.매개변수는 ID일 필요는 없지만 객체 자체에 대한 참조일 수도 있습니다. 예를 들어 $("id")는 $($("id"))
*/
var와 동일합니다. $ = XiaoFeng.$ = function( ){
var elements = new Array();
for(var i=0;ivar element = 인수[i] ;
if (typeof( element) == "string") element = document.getElementById?document.getElementById(element):document.all.element
if (arguments.length==1) return element; 🎜>elements.push(element) ;
}
요소 반환
}
/*=================== ======== ========================================= ======== ========
[지정된 ID를 가진 노드 가져오기]
생성 날짜: [2005-05-03]
document.getElementsByName(id) 가져오기 지정된 ID로 설정된 이름, 예 이 메소드의 단축키 및 확장은 여러 매개변수를 지정하고 객체 배열을 반환할 수 있습니다.
*/
var $N = XiaoFeng.$N = function(){
var elements = new Array();
for(var i=0;ivar element=arguments[i] if (typeof(element) == "string" ) element = document.getElementsByName?document .getElementsByName(element):document.all.element;
if (arguments.length==1) return element;
elements.push(element)}
요소 반환
}
/*================================ ======== ========================================= ==
【TagName을 지정하는 하나의 노드 가져오기]
생성 날짜: [2005-05-03]
document.getElementsByTagName(TagName)은 TagName을 지정하는 이름 집합을 가져옵니다. 여러 매개변수를 지정하고 하나의 객체 배열을 반환할 수 있습니다
*/
var $T = XiaoFeng.$T = function(){
var elements = new Array()
for(var i=0; ;ivar element = 인수[i];
if (typeof(element) == "string") element = document.getElementsByTagName(element); 인수.길이==1) 요소 반환; 요소.push(요소);
}
요소 반환
}
/*========= ======= ========================================== ======= ====================
【요소 생성】
생성 날짜: [2008-06-18]
*/
var $ C = XiaoFeng.$C = function(){return document.createElement(arguments[0]);}
/*=============== ========= ======================================== ========= ===================
【배열 변환】
작성일: [2008-08-13]
*/
var $A = XiaoFeng.$A = function(a){return a?Array.apply(null,a):new Array;}
/*========== ========== ======================================= ========== =====================
[이벤트 소스 잡기]
작성일: [2008-08- 13]
*/
var getElement = XiaoFeng.getElement = function(){
if(arguments.length == 0)
return event.srcElement;
else
문서 반환 .all?arguments[0].srcElement :arguments[0].target;
}
/*====================== ========== ======================================= ========== =====
[객체 클래스에 이벤트, 언로드 이벤트 및 마우스 좌표 추가]
[2008-10-09]에 생성됨
이벤트 추가, 이벤트 및 마우스 좌표를 Object 클래스로 언로드:
*/
Object.extend(Object.prototype,{
addEvent : function(a, b, c, d){
//함수 추가
if(a.attachEvent)a.attachEvent (b[0], c)
else a.addEventListener(b[1] || b[0].replace(/^on/, "") , c, d || false);
return c;
},
delEvent : function(a, b, c, d){
if(a.detachEvent) a.detachEvent(b [0], c)
else a .removeEventListener(b[1] || b[0].replace(/^on/, ""), c, d || false); ;
},
이벤트 : function (){//이벤트 가져오기
return window.event ? window.event : (function (o){
do{
o = o.caller ;
} while (o && !/^ [object[ A-Za-z]*Event]$/.test(o.arguments[0]))
return o.arguments[0]; 🎜>})(this.reEvent)
},
Scroll : function(){
return {
Left : document.body.scrollLeft == 0?document.documentElement.scrollLeft:document .body.scrollLeft,
Top :document.body.scrollTop == 0?document.documentElement.scrollTop:document.body.scrollTop
};
}
}); ============ ===================================== ============ ==========================
[브라우저 및 버전 번호를 판단하세요]
[작성일: 2009-06-12]
*/
XiaoFeng.userAgent = function(){
var ua = navigator.userAgent.toLowerCase()
if(window.ActiveXObject; )return {name : "IE",ver : ua .match(/msie ([d.] )/)[1]}
if(document.getBoxObjectFor)return {name : "Firefox",ver : ua. match(/firefox/([d.] )/ )[1]}
if(window.MessageEvent && !document.getBoxObjectFor)return {name : "Chrome",ver : ua.match(/chrome/([ d.] )/)[1]}
if(window.opera)return {name : "Opera",ver : ua.match(/opera.([d.] )/)[1]}
if(window.openDatabase)return {name : " Safari",ver : ua.match(/version/([d.] )/)[1]}
return {name : "Other",ver : 0 }
}
/*== ===================================== ============ ====================================
[마우스 상대 좌표]
[2008-10-06 작성]
*/
var Event = function(){
var e = Object.Event()
var o = {x : 0,y : 0};
switch(arguments[0]){
case 0:/*마우스의 상대 위치*/
o.x = e.clientX;
o.y = e.clientY;
사례 1:/*마우스의 절대 위치*/
o.x = e.clientX Object.Scroll().Left;
o.y = e.clientY Object.Scroll().Top
break; ;
기본값:/*마우스의 상대 위치*/
o.y = e.clientY
return
}
/*========================================== ===== ==========================================
【Ajax 생성 클래스 ]
생성일 [2008-05-30]
업데이트일 [2009-06-09]
var ajax = new AjaxRequest()
ajax.Url = "Test .aspx";
ajax.Content = "";
ajax.Fun = function(){alert("Extracting..");}
ajax.CallBack = function(e){
//작업 코드
var XmlDoc=e.responseText;
var XmlDoc=e.responseXML;
var Roots=XmlDoc.documentElement.childNodes;
alert(Roots[0].childNodes[0] .text);
ajax.Send();
*/
XiaoFeng.Ajax = AjaxRequest(){
var xmlhttp = false; var self = this ;
this.Method = "post";
this.Content = ""; Fun = function( ){return;};
this.CallBack = function(obj){return;}
this.Error = null;
this.Create = function(){//Create XMLHttpRequest
if( typeof(window.XMLHttpRequest)!="정의되지 않음"){
xmlhttp = new XMLHttpRequest()
if(xmlhttp.overrideMimeType)xmlhttp.overrideMimeType("text/html")
}else if( window.ActiveXObject){
var Versions = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp "];
for(var i=0;itry{
var XmlHttp = new ActiveXObject(Versions[i]);
xmlhttp = XmlHttp;
}catch(오류){
if(i == (Versions.length-1))alert("오류: 서버 개체 인스턴스를 생성하지 못했습니다.");//브라우저 문제//Error.description 발생
}
}
}
return xmlhttp;
} this.Send = function(){
if(this.Url == ""){alert("The 처리 주소는 비어 있을 수 없습니다!");}
xmlhttp = this.Create();
xmlhttp.open(this.Method,this.Url,true);
if(this.Method == " post")xmlhttp .setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4){
if (xmlhttp.status == 200){
self.CallBack(xmlhttp);
}else{
alert("오류: 오류 코드 [" xmlhttp.status "]"); 🎜>self.Error = "서버 오류 [" xmlhttp.status "].";
clipboardData.setData("text",self.Url "?" self.Content)
self.CallBack(self) ;
}
}else
self.Fun();
}
if(this.Method.toLowerCase() == "post")
xmlhttp.send(this. 내용);
else
xmlhttp.send(null)
}
}
/*================= ==== ============================================= ==== =============
[XML 객체 클래스 생성]
[2008-04-09 생성]
var Http_Request=false; */
function CreateAjax(){
var Ajax_Obj;
if(typeof(window.XMLHttpRequest) != "undefine"){
Ajax_Obj = new XMLHttpRequest()
if(Ajax_Obj .overrideMimeType)Ajax_Obj .overrideMimeType("text/html");
}else if(window.ActiveXObject){
var Versions = ["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0"," MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
for(var i=0;itry{
var XmlHttp= new ActiveXObject(버전 [i]);
Ajax_Obj = XmlHttp;
}catch(Error){
if(i == (Versions.length-1))alert("오류: 서버를 생성하지 못했습니다. 객체 인스턴스 [브라우저 문제].");//브라우저 문제//Error.description 발생
}
}
}
return Ajax_Obj;
}
/*=== == =============================================== == =================================
[XML 작업 클래스 로드] [생성 위치 2009- 06-12]
*/
function LoadXml(Path){
if(XiaoFeng.userAgent().name == "Firefox"){
var Dom = document.implementation.createDocument (" ", "", null);
Dom.async = false;
Dom.load(Path)
}else{
Dom = new ActiveXObject("Microsoft.XMLDOM");
Dom.async = false;
Dom.load(Path);
}
return Dom; == =============================================== == ========================
[쿠키 동작 클래스]
[생성일: 2008-04-09]
* /
var Cookies = {
GetVal:function(offset){//쿠키의 디코딩된 값 가져오기
var endstr = document.cookie.indexOf(";", offset)
if ( endstr = = -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr))
},
Add:function(name,value) ,hours ){//쿠키 값 설정
var 만료 = "";
if(hours != null){
expire = new Date((new Date()).getTime() 시간 * 3600000 ) ;
expire = ";expires="expire.toGMTString();
}
document.cookie = name "=" escape(값) 만료
},
Del:함수 ( 이름){//쿠키 삭제
var exp = new Date();
exp.setTime(exp.getTime() - 1)
var cval = GetCookie (이름); . 쿠키 = 이름 "=" cval "; 만료=" exp.toGMTString()
},
Get:function(name){//쿠키의 원래 값 가져오기
var cookieValue = "";
var search = name "="
if(document.cookie.length > 0 ){
offset = document.cookie.indexOf(search);
if (offset != -1){
offset = search.length;
end = document.cookie.indexOf(" ; ", 오프셋);
if (end == -1) end = document.cookie.length;
cookieValue = unescape(document.cookie.substring(offset, end))
}
}
return cookieValue;
},
get:function(name){/*여기서 쿠키 메모의 원래 값을 가져옵니다. 여기서는 주로 C#*/의 Cookies 배열에 해당합니다.
var reg = new RegExp ( "(^|&)" name "=([^&]*)(&|$)")
var r = Cookies.Get("HTGL").match(reg)
if ( r != null) return unescape(r[2]);
return "";
}
}
/*//============ = ================================================ = ======================
//[객체의 실제 좌표 구하기]
[작성일: 2008-04-09]
*/
function getDim(e){
var rd = {x:0,y:0}
do{
rd.x = e.offsetLeft
rd; y = e.offsetTop;
e = e.offsetParent;
}while(e)
return rd; ==== ============================================= ==== ======================
//[객체의 상위 노드 가져오기]
[생성일 2008-06- 04]
*/
function getParent(o,N){
var e = new Object()
e = o
do{
e = e.parentNode;
try{ if(e.tagName.toLowerCase() == N.toLowerCase())break;}catch(e){break;}
}while(e)
return e; }
/ *//========================================= ====== =======================================
// [객체의 실제 네 모서리 좌표 가져오기 ]
[작성일: 2008-10-09]
*/
function getInfo(o){//좌표 가져오기
var to = new Object ();
to.left = to .right=to.top=to.bottom=0;
var twidth = o.offsetWidth;
var theight = o.offsetHeight; 🎜>to.left = o.offsetLeft;
to.top = o.offsetTop;
o = o.offsetParent
}while(o != document.body)
to.right = to.left twidth;

to.bottom = to.top height;
return to
}
/*//============ =========== ====================================== =========== ============
//[지정 문자와 일치하는 객체 가져오기]
[작성일: 2008-10-09]
*/
function getObj( o,s){
f = false;
while(o != document.body){
if(o.id.toLowerCase().indexOf( s) != -1){
f = true;
break;
}
o = o.offsetParent;
return f; /*======== ======================================= ========== ==============================
[매개변수 값 가져오기]
[작성일: 2008-06-08]
*/
var getQuery = XiaoFeng.getQuery = function(){
if(arguments.length == 0)return null
if(arguments .length == 1){
var reg = new RegExp("(^|&)" 인수[0] "=([^&]*)(&|$)")
var r = window.location.search.substr(1) .match(reg);
if (r!=null) return unescape(r[2])
return null; var Reg = new RegExp(arguments[1] "=\w ","gi");
try{return 인수[0].match(Reg).toString().split(",")[0] .split("=")[1] ;}catch(e){return null;}
}
}
/*================ ============ ===================================== ============ ============
【드래그 기능】
작성일: [2008-04-09]
*/
var Drag = XiaoFeng.Drag = function(o ){
var x,y;
x = getDim(o).x;
y = getDim(o).y; = event.clientX - x;
var deltaY=event.clientY - y;
var drag = true;
o.style.filter = "알파(불투명도=60)"
o. onmousemove = function(){
if( 드래그){
o.style.left=(event.clientX - deltaX) "px"
o.style.top=(event.clientY - deltaY) "px";
if(event.clientX - deltaX if(event.clientY - deltaY if(event.clientX - deltaX o.offsetWidth >= XiaoFeng.System.Size(0).x)o.style.left = (XiaoFeng.System.Size(0).x - o. offsetWidth) "px";
if( event.clientY - deltaY o.offsetHeight >= XiaoFeng.System.Size(0).y)o.style.top = (XiaoFeng.System.Size(0).y - o.offsetHeight) "px";
o.setCapture();
}
}
o.onmouseup = function(){
o.style.filter = "Alpha(Opacity= 100)";
드래그 = false;
o.releaseCapture();
} } /*================= ================================================== ============= ==========
[문자 변환 클래스]
[2008-04-09]에 작성
[2008에 업데이트) -06-02]
*/
var StrToHtml = {
sTh:function(s){
s = s.replace(/,"s = s.replace(/>/gi,">" );
s = s.replace(/"/gi,""")
s = s.replace(/&/gi,"& ");
s = s.replace(/ /gi," ");
s를 반환합니다.
},
hTs:function(s){
s = s.replace( /," s = s.replace(/>/gi,">")
s = s.replace(/\/gi,""");
s = s.replace(/&/gi," &"); ,"s = s.replace(/ /gi," ")
return s; 함수(들){
s = s.replace(/[/gi,"s = s.replace(/]/gi,">")
return s; 🎜>},
yTb:function(s) {
s = s.replace(/,"[")
s = s.replace(/,"[" ); ,"s = s.replace(/> /gi,"]");
s = s.replace(/>/gi,"]"); /gi," ");
s를 반환
}
}
/*=========================================== === =============================================
【 폼의 너비와 높이를 가져옵니다]
주로 일부 시스템 메서드
*/
XiaoFeng.System = {
Event: function(){
var e = Object.Event ();
var o = {x : 0,y : 0};
switch(arguments[0]){
case 0 :/*마우스의 상대 위치*/
o.x = e .clientX;
o.y = e.clientY;
break;
case 1:/*마우스의 절대 위치*/
o.x = e.clientX Object.Scroll().Left; o.y = e.clientY Object.Scroll().Top;
break;
기본값:/*마우스의 상대 위치*/
o.x = e.clientX;
break;
}
return o;
},
Size : function(){//[폼의 너비와 높이 가져오기]
var s = {x : 0,y : 0};
if(window.innerWidth){
s.x = window.innerWidth;
s.y = window.innerHeight;
}else if(document.compatMode=='CSS1Compat' ){
if( 인수[0] == 1){
s.x = document.body.clientWidth;
s.y = document.body.clientHeight
}else if(arguments[0] = = 2){
s.x =parseInt(document.documentElement.clientWidth)parseInt(document.documentElement.scrollLeft);
s.y=parseInt(document.documentElement.clientHeight)parseInt(document.documentElement.scrollTop); >}else{
s.x = document.documentElement.clientWidth;
s.y = document.documentElement.clientHeight;
}
}else if(document.body){
if(arguments[0 ] == 1){
s.x = document.body.scrollWidth;
s.y = document.body.scrollHeight
}else if(arguments[0] == 2){
s.x = document. body.clientWidth document.body.scrollLeft;
s.y = document.body.clientHeight document.body.scrollTop;
}else{
s.x = document.body.clientWidth; .clientHeight;
}
}
return s;
},
Scroll : function(){//[양식의 스크롤 막대 가져오기]
var s = {x : 0,y : 0};
if(document.compatMode=='CSS1Compat'){
s.x = document.documentElement.scrollTop;
s.y = document.documentElement.scrollLeft
}else; if(document.body){
s.x = document.body.scrollTop;
s.y = document.body.scrollLeft;
}
return s; (){return Math.floor( Math.random()*1000000);}
}
/*======================= ========= ======================================== ========= ==========
[파일 이름 및 파일 확장자 가져오기]
[2009-04-20]
*/
함수 FileType(FName){
FName = FName.replace(/\/gi,"/")
FName = FName.substr(FName.lastIndexOf("/") 1) return {Name : FName.substr(0, FName.indexOf(".")),Type : FName.substr(FName.indexOf(".") 1)}
}
/*====== ======= ========================================== ======= ============================
[선택창 열기 및 저장창]
[2009-05-28]
첫 번째 방법:
varDialog = new XiaoFeng.Dialog("파일을 선택하세요.", "txt 파일(*.txt)|*.txt|모든 파일(*.* )|*.*", ".txt");
두 번째 방법:
varDialog = new XiaoFeng.Dialog({
제목: "파일을 선택하세요",
필터: "txt 파일(*.txt) |*.txt|모든 파일(*.*)|*.*",
DefaultExt : ".txt"
});
dialog.Open();
참고: 매개변수는 다를 수 있습니다. 입력하면 기본값이 됩니다.
*/
XiaoFeng.Dialog = function(){
this.DialogTitle = "열 파일을 선택하세요.";
this.DialogFilter = "Excel 파일( *.xls)|*.xls|모든 파일(*.*)|*.*";
this.DialogDefaultExt = ".xls"; 쿼리 = 인수;
var self = this ;
this.Init = function(){
if(typeof self.Query[0] == "string"){
self.DialogTitle = self .Query[0]?self.Query[0 ]:self.DialogTitle;
self.DialogFilter = self.Query[1]?self.Query[1]:self.DialogFilter
self.DialogDefaultExt = self .Query[2]?self.Query[2 ]:self.DialogDefaultExt;
}else if(typeof self.Query[0] == "object"){
self.DialogTitle = self.Query[0 ].Title?self.Query[0].제목:self.DialogTitle;
self.DialogFilter = self.Query[0].Filter?self.Query[0].Filter:self.DialogFilter
self; .DialogDefaultExt = self.Query[0].DefaultExt ?self.Query[0].DefaultExt:self.DialogDefaultExt;
}
try{
if(!$("Dialog_OpenSave")){
var _Dialog_Open = $C("object") ;
_Dialog_Open.id = "Dialog_OpenSave";
_Dialog_Open.classid = "CLSID:F9043C85-F6F2-101A-A3C9-08002B2F49FB"; .display = "none";
document .body.appendChild(_Dialog_Open);
}
$("Dialog_OpenSave").CancelError =
}catch(e){}
}
this.Open = function() {
$("Dialog_OpenSave").DialogTitle = this.DialogTitle;
$("Dialog_OpenSave").Filter = this.DialogFilter; Dialog_OpenSave").DefaultExt = this.DialogDefaultExt;
$("Dialog_OpenSave").ShowOpen();
return $("Dialog_OpenSave").FileName;
}
this.Save = function( ){
$("Dialog_OpenSave") .DialogTitle = this.DialogTitle.replace("열기","저장")
$("Dialog_OpenSave").Filter = this.DialogFilter; "Dialog_OpenSave").DefaultExt = this.DialogDefaultExt;
$("Dialog_OpenSave").ShowSave();
return $("Dialog_OpenSave").FileName;
this.Init() ;
}
/*=========================================== === =============================================
【 무한 드롭다운 목록]
[2009-06-13]
드롭다운 목록이 배치될 위치에 컨트롤을 배치합니다. 일반적으로 숨겨진 필드입니다.
XML을 데이터 소스인 경우 XML 형식을 직접 호출할 수 있습니다.
var XMLDOM = LoadXml("CreateXML.ashx?RootId=15&sd=101");
Root = XMLDOM.documentElement
Ajax를 사용하여 호출할 수도 있습니다. 데이터 소스 업로드
var ajax = new XiaoFeng.AjaxRequest();
ajax.Url = "CreateXML.ashx?RootId=15&sd=101"
ajax.CallBack = function(e){
if(e.Error != "정의되지 않음")return ;
var Root = e.responseXML.documentElement;
}
var ClassSelect = new SelectClass();
ClassSelect.Name = "ClassId";
ClassSelect.FirstOption = [["==선택하세요==","0"]]
ClassSelect.SelectFirst =
ClassSelect.Fun; = function(e){}
ClassSelect.Select = "101";
ClassSelect.Run();

매개변수 설명: 소스는 드롭다운 목록입니다.
이름은 숨겨진 컨트롤 ID이며 일반적으로 숨겨진 필드입니다.
FirstOption은 목록의 첫 번째 줄에 표시되는 텍스트입니다. 각 항목에 대해 다른 텍스트를 표시하려면 다음을 수행하세요. 여러 텍스트를 설정하세요. 예를 들어 [["==지방을 선택하세요==","0"],["==도시를 선택하세요 ==","0"],["==국가를 선택하세요= =","0"]] FirstOption = "" 또는 FirstOption = []인 경우 이 단어는 표시되지 않습니다. 기본값은 [["== ==",""]]를 선택하십시오.
SelectFirst는 true입니다. 로딩 후 설정할 텍스트를 표시할지 여부 False는 데이터의 첫 번째 행을 표시할지 아니면 설정된 행을 표시할지 여부입니다.
Fun 이 기능은 각 드롭다운 목록의 onchange 선택 이벤트가 인터페이스를 트리거합니다. function
Select는 선택한 속성에 대해 기본값을 ""로 설정합니다.
Run은 이 카테고리를 실행합니다.
*/
var SelectClass = XiaoFeng.SelectClass = function() {
this.Name = ""
this.Source = new Object();
this.FirstOption = [["==선택하세요==","0"]]
this.SelectFirst =
this.Select; = "";
this.Fun = function(e){return;}
this.Run = function(){
if(!$( this.Name)){
var _Input = $C("입력");
_Input.type = "숨김";
_Input.name =
_Input.id = this .Name; _Input);
}
$(this.Name).value = this.Select;
if(typeof this.Source == "object")
if(this.Source.hasChildNodes){
this.CreateSelect(this.Source);
if(this.Select == ""){
var __Select = $(this.Name) .parentNode.getElementsByTagName("select"); >if(this.SelectFirst)
$(this.Name).value = __Select[__Select.length - 1].value;
else
$ (this.Name).value = __Select[__Select. length - 1].options[1].value;
}
}else{
var _Span = $C("span");
_Span.innerHTML = "데이터 소스가 비어 있습니다. ";
$(this.Name).parentNode.appendChild(_Span);
}
else{
var _Span = $C("span");
_Span.innerHTML = " 데이터 소스에 오류가 있습니다.";
$(this.Name).parentNode.appendChild(_Span);
}
}
this.CreateSelect = function(node){
if(!node.hasChildNodes){ this._SelectFirstName();return;}
var Select = $C("select")
Select.id = Select.name = "select_" (new Date().getTime()); >var _f = false,_s = 0;
if(typeof this.FirstOption == "string")this.FirstOption = []
if(typeof this.FirstOption == "object" && this.FirstOption .length > 0)
Select.add(this.CreateOption("==请选择==","0",false))
for(var i = 0;i if(node.childNodes[i].getAttribute("s") == null){_f = false;}else{_f = true;_s = i;} Select.add( this.CreateOption(node.childNodes[i].getAttribute("Name"),node.childNodes[i].getAttribute("Id"),_f))
}
$(this.Name). parentNode.insertBefore(Select,$(this.Name));
if(_s > 0)
this.CreateSelect(node.childNodes[_s])
else{
this.CreateSelect( node.childNodes[0]);
if(this.SelectFirst)
if(this.FirstOption.length == 0)
Select.options[0].selected = true;
else
Select.options[1].selected = true;
}
}
this.CreateOption = function(t,v,f){
var OptionSub = new Option();
OptionSub.text = t;
OptionSub.value = v;
if(f)OptionSub.selected = f;
OptionSub를 반환합니다.
}
this._SelectFirstName = function(){
var _Select = $(this.Name).parentNode.getElementsByTagName("select");
var self = this,_f = true;
var _FirstOption = [],_FirstLength = this.FirstOption.length;
if(this.FirstOption.length == 0)_f = false;
for(var i = 0;i if(_f){ if(i >= _FirstLength)
_FirstOption = this.FirstOption[0];
else
_FirstOption = this.FirstOption[i];
_Select[i].options[0].text = _FirstOption[0];
_Select[i].options[0].value = _FirstOption[1];
}
if(i == _Select.length - 1)
_Select[i].setAttribute("onchange",function(){
var __Select = this.parentNode.getElementsByTagName("select ");
$(self.Name).value = __Select[__Select.length - 1].value;
if(self.FirstOption.length != 0 && this.selectedIndex == 0)
if(_Select.length > 1)
$(self.Name).value = __Select[__Select.length - 2].value
self.Fun(this)
});
else
_Select[i].setAttribute("onchange",function(){
self._RemoveSelect(this);
self._SelectNode(self.Source,this.value);
var __Select = this.parentNode.getElementsByTagName("select");
if(self.SelectFirst){
$(self.Name).value = __Select[__Select.length - 1].value; >}else
$(self.Name).value = __Select[__Select.length - 1].options[1].value
if(self.FirstOption.length != 0 && this.selectedIndex == 0)
if(_Select.length > 1)
$(self.Name).value = __Select[__Select.length - 2].value
self.Fun(this); );
}
}
this._SelectNode = function(node,s){
for(var i = 0;i if(node.childNodes [i].getAttribute("Id") == s)
this.CreateSelect(node.childNodes[i]);
else if(node.childNodes[i].hasChildNodes)this._SelectNode(node.childNodes[i],s);
}
this._RemoveSelect = function(o){
var _Select = $(this.Name).parentNode.getElementsByTagName("select");
var _f = false;
for(var i = 0;i if(_Select[i] == o){_f = true;continue;}
if(_f){_Select[ i].parentNode.removeChild(_Select[i]);i--;}
} }
}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.