/**
* @author Super Sha
* QQ:770104121
* E-Mail:supei_shafeng@163.com
* 발행일: 2009-3-27
* All Rights Reserved
*/
var JsHelper={}; //JsHelper 루트 네임스페이스 선언
JsHelper.DOM = {}; //JsHelper 디렉터리 아래에 DOM 네임스페이스 선언
JsHelper.Event={}; //JsHelper 디렉터리에 이벤트 이벤트 네임스페이스를 선언합니다
JsHelper.Browser={}; //JsHelper 디렉터리에 브라우저 관련 함수를 선언합니다.
JsHelper. }; //Jshelper 디렉토리에 Ajax 관련 함수 네임스페이스를 선언합니다.
JsHelper.String={}; //JsHelper 디렉토리에 String 관련 네임스페이스를 선언합니다.
/*
* $ ()는 여러 매개변수를 입력할 수 있으며 객체 배열을 반환합니다.
*/
var $=function(){ //$ 메서드의 단순화된 버전
var elements=new Array (); if(arguments.length==0){ //매개변수가 비어 있으면 문서 요소를 반환합니다.
return document;
}
for (var i = 0; i { var element = 인수[i];
if (typeof element == string )
{
element = document.getElementById(element)
}
if (arguments.length == 1)
{
return 요소;
}
elements.push(element)
}
return 요소; .DOM.$=function()
{
var elements=new Array();
for (var i = 0; i
var 요소 = 인수[i];
if (요소 유형 == 문자열 ) {
element = document.getElementById(element)
}
if (arguments.length == 1)
{
요소 반환;
}
elements.push(요소);
}
요소 반환;
/*
* $Value() 여러 매개변수를 입력할 수 있으며 획득한 객체의 값 배열을 반환합니다.
*/
JsHelper.DOM.value=function()
{
var value=new Array()
for ( var i = 0; i {
var 요소 = 인수[i]
if (typeof(element) == 문자열 )
{ var v =document.getElementById(element).value;
}
if(arguments.length==1)
{
return v;
}
values .push(v);
}
반환 값;
}
/*
makeArray는 입력 매개변수에 대한 배열 반환을 생성합니다. 매개변수가 비어 있으면 "정의되지 않음"을 반환하고, 그렇지 않으면 Array*/
JsHelper.String.makeArray=function()
{
var value=new Array()
if(arguments.length>0){
for ( var i = 0; i {
var element=arguments[i];
if(typeof element == "string")
{
values. ); }
}
else
{
"정의되지 않음" 반환
}
값 반환; 🎜>* 연결 문자열 성능 문제를 처리하기 위해 StringBuilder 클래스 선언
*/
JsHelper.String.StringBulider={
_strs:new Array(),
append: function( str){ // _strs 속성에 문자열 추가
this._strs.push(str);
return this
},
toString:function(){
if (arguments .length != 0)
return this._strs.join(arguments[0]); // 조인 매개변수에 대한 선택적 매개변수를 허용하여 _strs 속성을 결합한 후 문자열을 반환합니다.
} else{
return this._strs.join ("");
}
}
};
/*
* $TagName()은 매개변수를 입력하고 Elements TagNeme 객체의 배열을 반환합니다.
* /
JsHelper.DOM.tagName=function()
{
var element=arguments[0]
if(typeof element== string )
{
var tagname=document .getElementsByTagName(요소)
}
return 태그 이름
}
//=================== ======================================
/*
* 라벨: HTML 라벨 ID
* responseText에만 사용 가능
* GET 메소드에만 사용 가능
*/
var _xmlhttp;//전역 XMLHttpRequest 객체 선언 예시
function Ajax(method, url, label){
this.method = method;
this.url = url
try {
_xmlhttp = new ActiveXObject("Msxml2.XMLHTTP" )
catch (e) {
try {
_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
}
catch(s) {
_xmlhttp = new XMLHttpRequest(); }
}
Ajax.prototype.ResponseText = function(){
_xmlhttp.onreadystatechange = this.onComplete;
_xmlhttp.open(this.method, this .url, true)
_xmlhttp .send(null);
}
Ajax.prototype.onComplete = function(){
if (_xmlhttp.readyState == 4) {
if ( _xmlhttp.status == 200) {
$(label).innerHTML = _xmlhttp.responseText;
}
}
}
this.ResponseText()
}
//======= ==========================================
/*
* 브라우저 유형 결정
*/
var ua = navigator.userAgent.toLowerCase()
if (window.ActiveXObject) {
JsHelper.IE = ua.match(/msie ([d.] )/)[1];
}
else if (document.getBoxObjectFor) {
JsHelper.Browser.Firefox = ua.match( /firefox/([d.] )/ )[1];
else if (window.MessageEvent && !document.getBoxObjectFor) {
JsHelper.Browser.Chrome = ua.match(/chrome /([d.] )/)[ 1];
}
else if (window.opera) {
JsHelper.Browser.Opera = ua.match(/opera.([d.] ) /)[1];
else if (window.openDatabase) {
JsHelper.Browser.Safari = ua.match(/version/([d.] )/)[1];
/*
* XMLHttpRequest 객체의 인스턴스를 선언하고 인스턴스를 반환합니다.
*/
JsHelper.Ajax.createRequest=function()
{
var xmlhttp=null
try
{
xmlhttp=new XMLHttpRequest();
}
catch(trymicrosoft){
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); > }
catch(othermicrosoft){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
}
}
return xmlhttp; *
* 일반적인 AddEventListener 함수인 obj는 DOM 요소입니다.
*/
JsHelper.Event.addEventlistener=function(labelID,eventMode,fn)
{
var obj=JsHelper.DOM . $(labelID);
if (typeof window.addEventListener != 정의되지 않음) {
obj.addEventListener(eventMode, fn, false)
else
if (문서 유형. addEventListener != 정의되지 않음 ) {
obj.addEventListener(eventMode, fn, false)
}
else
if (typeof window.attachEvent != 정의되지 않음 ) {
obj.attachEvent(" on " eventMode, fn);
}
else {
false 반환;
}
true 반환;
}
/*
* 포함 Douglas Crockford의 함수 메소드 확장은 Douglas Crockford에게 있습니다. 이로써
*/
Function.prototype.method = function (name, func) {
this.prototype[ name ] = func;
return this;
};
Function.method( 상속 , function (parent) {
var d = {}, p = (this.prototype = new parent() ) ;
this.method( base , function uber(name) {
if (!(name in d)) {
d[name] = 0;
}
var f, r , t = d[이름], v = parent.prototype;
if (t) {
while (t) {
v = v.constructor.prototype;
t
}
f = v[이름];
} else {
f = p[이름]
if (f == this[이름]) {
f = v [ 이름];
}
}
d[이름] = 1;
r = f.apply(this, Array.prototype.slice.apply(인수, [1])); >d[이름] -= 1;
return r;
});
return this;
})
Function.method( swiss , function (parent) > for (var i = 1; i var name = 인수[i];
this.prototype[name] = parent.prototype[name] }
return this;
});
/*
* IE가 HTMLElement를 지원하지 않는 문제에 대한 해결책*/
var DOMElement ={
확장 : function(name,fn)
{
if(!document.all)
{
eval("HTMLElement.prototype." name " = fn")
}
else
{
var _createElement = document.createElement;
document.createElement = function(tag)
{
var _elem = _createElement(tag); " name " = fn");
return _elem;
}
var _getElementById = document.getElementById;
document.getElementById = function(id)
{
var _elem = _getElementById ( id);
eval("_elem." name " = fn");
return _elem;
}
var _getElementsByTagName = document.getElementsByTagName = function(tag) )
{
var _arr = _getElementsByTagName(tag);
for(var _elem=0;_elem<_arr.length>eval("_arr[_elem]." name " = fn " );
return _arr;
}
}
}
};
/*
* 다음은 아버지 John Resig의 여러 DOM 쿼리 함수를 모델로 한 것입니다. jQuery 기능
*/
DOMElement.extend("previous",function(){ // 이전Sibling DOM 함수와 유사 <_arr.length>var elem=this;
do{
elem=elem. PreviousSibling ; nextSibling DOM 함수
var elem=this; do{
elem=elem.nextSibling
}while(elem&&elem.nodeType!=1)
return elem; ;
DOMElement.extend("first",function(num){ //firstChild DOM 함수와 유사, 부모와 동일
var elem=this;
num=num||1;
for (var i = 0; i elem = elem.firstChild
}
return (elem && elem.nodeType!=1 ? next(elem):elem); >} );
DOMElement.extend("last",function(num){ //lastChild DOM 함수와 유사, 부모와 동일
var elem=this;
num=num||1;
for (var i = 0; i elem = elem.lastChild
}
return (elem && elem.nodeType!=1 ? prev(elem):elem) ;
});
DOMElement.extend("parent",function(num){ //parentNode의 여러 수준을 반환할 수 있습니다. 예를 들어 parent(2)는 elem.parent()와 동일합니다. parent();
var elem=this;
num=num ||1;
for (var i = 0; i if (elem != null)
elem = elem.parentNode; }
}
return elem;
})
DOMElement.extend("hasChilds",function(){ //있는 경우 판단합니다. 하위 노드
if(this!=null && this.hasChildNodes()){
return true;
} else{
return false;
DOMElement.extend("text",function(){ //레이블의 텍스트를 가져옵니다. 매개변수가 0이 아닌 경우 레이블에서 텍스트 버전을 설정할 수 있습니다. 입력에도 적합합니다. labels
try{ //InnerText를 지원하지 않는 Firefox용 솔루션
HTMLElement.prototype.__defineGetter__("innerText",function(){
var anyString = "";
var childS = this.childNodes ; for(var i =0; i
anyString = childS[i].tagName == " BR" ? "n : childS[ i].innerText
}
else if(childS[i].nodeType == 3) {
anyString = childS[i].nodeValue;
}
}
return anyString; 🎜>}
catch(e){}
if (arguments.length == 1) {
if (this.innerText) {
this.innerText = 인수[0]
}
else {
this.value = 인수[0];
}
}
else {
return this.innerText || this.value; >})
DOMElement.extend("html",function(){ //요소의 innerHTML을 가져옵니다. 매개변수가 0이 아닌 경우 요소 내에서 텍스트와 하위 노드를 설정할 수 있습니다.
(arguments.length= =0){
return this.innerHTML;
}
else if(arguments.length==1)
{
this.innerHTML=arguments[0];
}
});
/*
* 다음은 className
*/
DOMElement.extend("getClassName",function(){ / /Return 요소 className
if(this!=null&&this.nodeType==1){
return this.className.replace(/s /, ).split( )
}
return null;
}); DOMElement.extend("hasClassName",function(){ //클래스가 있는지 확인 class
if(this!=null&&this.nodeType==1){
var 클래스=this.getClassName();
for(var i=0;i
}else{
return false;
}
})
DOMElement.extend("addClass",function(){ //요소에 클래스를 추가할 수 있습니다. 한 번에 여러 클래스
if( this!=null&&this.nodeType==1){
for (var i = 0; i
return this;
}
return null;
}); /클래스 제거, 매개변수가 없으면 모든 클래스 삭제
if (this != null && this.nodeType == 1) { if (arguments.length == 0) {
this .className = "";
}
else if(arguments.length!=0) {
varclasses=this.getClassName()
for (var i = 0; i
classes =classes.join( " ").replace(arguments[i], ).split(" ");
}
}
}
this.className=classes.join("
} return this; }
return null;
})
JsHelper.__toggleflag=false; //판단 스위치 추가
DOMElement.extend("toggleClass",function( classname){ //두 번의 클릭으로 호출되는 함수 다름
if(this!=null && this.nodeType==1){
this.onclick=function(){
if(JsHelper.__toggleflag== false){
this.addClass(클래스 이름);
JsHelper.__toggleflag = true;
}else if (JsHelper.__toggleflag == true) {
this.removeClass(클래스 이름); JsHelper.__toggleflag = false;
}
}
}
})
/*
* jQuery의 클릭 방법이 사용되는 방식과 유사하게 각 개체에 클릭 방법을 추가합니다. 🎜>*/
DOMElement.extend("click",function(){
if(this!=null && this.nodeType==1){
if(arguments.length==0){
alert("클릭했을 때 아무 작업도 수행하지 않았습니다.");
}else{
this.onclick=arguments[0];
}
}); 🎜>
/*
* hover 메소드를 각 객체로 확장합니다. 이 메소드는 두 개의 함수를 매개변수로 허용합니다.
*/
DOMElement.extend("hover",function(){
if (this!=null && this.nodeType==1){
if(arguments.length!=2){
alert("매개변수로 두 개의 함수가 필요합니다.")
}else{
this.onmouseover=arguments[ 0];
this.onmouseout=arguments[1];
}
}
})
/*
* 이벤트 추가 기능 각 요소에
* /
DOMElement.extend("addEvent",function(eventtype,fn){
if(document.all){
this.attachEvent("on" eventtype,fn) ;
}else{
this.addEventListener(eventtype,fn,false);
}
})
/*
* 속성 및 속성 값을 매개변수로 사용
*/
DOMElement.extend("css",function(){
if(this!=null && this.nodeType==1){
if(arguments .length!=2){
alert("매개변수로 두 개의 함수가 필요합니다.");
}else{
this.style[arguments[0]]=arguments[1]; 해당 스타일 속성의 값
return this;
}
}
return null
})
/*
* //다음에 해당하는 모든 요소를 찾아 반환합니다. 특정 클래스에 존재하며 이름은 className이고 유형은 HTML 태그 유형입니다.
*/
var hasClass = function(name,type){
var r = new Array()// var re = new RegExp(name," g");
var e=document.getElementsByTagName(type||"*")
for(var i=0;i
for (var j = 0; j
r.push(e[i] );
}
}
}
return r;
}
/*
* 특정 하위 요소 참조 모음을 반환합니다. 요소가 없으면 다음을 호출합니다. 이 메서드의 경우 기본값은 document
*/
DOMElement.extend("find",function(){
var r=new Array(); if(elem!=null && (elem.nodeType==1||elem.nodeType==9)){
var e=elem.getElementsByTagName(인수 [0]);
for(var i =0;i
return r; }
널을 반환
}) ;