var 슬라이스 = Array.prototype.slice;
window.Bind = 함수(객체, 재미) {
var args = Slice.call(arguments).slice(2);
반환 함수() {
return fun.apply(object, args);
};
};
window.BindAsEventListener = function(object, fun,args) {
var args = Slice.call(arguments).slice(2);
반환함수(이벤트) {
return fun.apply(object, [event || window.event].concat(args));
}
};
//jQ에서 복사
window.Extend = 함수(){
var 대상 = 인수[0] || {}, i = 1, 길이 = 인수.길이, 깊이 = true, 옵션;
if ( typeof target === "boolean" ) {
깊은 = 목표;
대상 = 인수[1] || {};
나는 = 2;
}
if ( typeof target !== "object" && Object.prototype.toString.call(target)!="[object Function]")
대상 = {};
for(;i
if ( (옵션 = 인수[ i ]) != null )
for(옵션의 변수 이름){
var src = 대상[ 이름 ], copy = 옵션[ 이름 ];
if ( 대상 === 복사 )
계속;
if ( deep && copy && typeof copy === "object" && !copy.nodeType ){
target[ 이름 ] = 인수.callee( deep, src || ( copy.length != null ? [ ] : { } ), copy );
}
else if(복사 !== 정의되지 않음)
대상[이름] = 복사;
}
}
반환 대상;
};
window.objPos = 함수(o){
var x = 0, y = 0;
do{x = o.offsetLeft;y = o.offsetTop;}while((o=o.offsetParent));
return {'x':x,'y':y};
}
window.Class = 함수(속성){
var _class = function(){return (arguments[0] !== null && this.initialize && typeof(this.initialize) == 'function') ? this.initialize.apply(this, 인수) : this;};
_class.prototype = 속성;
return _class;
};
window.hasClass = 함수(요소, 클래스이름){
return element.className.match(new RegExp('(\s|^)' className '(\s|$)'));
} ;
window.addClass = 함수(요소, 클래스 이름) {
!this.hasClass(element, className)&&(element.className = " " className);
}
window.removeClass = function(element, className) {
hasClass(element, className)&&(element.className = element.className.replace(new RegExp('(\s|^)' className '(\s|$)'),' ')) ;
}
})(창);
var 테이블 = 새 클래스({
옵션 :{
최소 너비: 62
},
초기화: function(tab,set){
This.table = 탭;
This.rows = []; //모든 tr 참조 기록
This.sortCol = null; //정렬 중인 열을 기록합니다
This.inputtd = null; //편집 중인 td를 기록합니다
This.editconfig = {}; //테이블 편집 규칙 및 팁
This.thead = tab.getElementsByTagName('thead')[0];
This.theadTds = tab.getElementsByTagName('thead')[0].getElementsByTagName('td'); //일반적으로 사용되는 DOM 컬렉션은 속성으로 참조 가능
This.tbodyTds = tab.getElementsByTagName('tbody')[0].getElementsByTagName('td');
This.closConfig = {
on : 거짓,
~ ~
totd : null
};
This.widthConfig = {
td : null,
nexttd : null,
x : 0,
td폭 : 0,
다음td폭 : 0
};
확장(this,this.options);
//이유는 모르겠지만 설정하지 않으면 랜덤으로 점프합니다
(Sys.ie6||Sys.chrome)&&(tab.width=tab.offsetWidth)
// 해당 체크박스를 기록하고 라디오가 선택되었습니다. 즉 6에서는 DOM 작업을 수행할 때 이러한 상태를 기억하지 않습니다.
If(Sys.ie6){
This.checkbox = {}
var checkboxs = tab.getElementsByTagName('input'),i=0,l=checkboxs.length;
for(;i
(checkboxs[i].type=="checkbox"||checkboxs[i].type=="radio")&&
addListener(checkboxs[i],"click",Bind(this,function(elm,i){
elm.checked==true?(this.checkbox[i] = elm):(delete this.checkbox[i]);
|
};
var i=0,l=set.length,rows =tab.tBodies[0].rows,d=document,tabTads=tab.getElementsByTagName('td'),length=this.theadTds.length;
//편집용 입력
This.input = d.createElement('input')
This.input.type = "텍스트";
This.input.className = '편집';
//끌고 있는 div를 표시하는데 사용됩니다
This.div = d.body.appendChild(d.createElement('div'));
This.div.className ="div";
//확대/축소 시 수직선 표시
This.line = d.body.appendChild(d.createElement('div'));
This.line.className = '라인';
This.line.style.top = objPos(tab).y "px";
//세트를 탐색하고 몇 가지 설정을 수행합니다. for(;i
//정렬이 필요한 헤드헌터에게 이벤트 바인딩
addListener(this.theadTds[set[i].id],'click',Bind(this, this.sortTable, this.theadTds[set[i].id],set[i].type));
// 편집해야 하는 테이블의 열에 대한 필수 구성을 정의합니다.
set[i].edit&&(this.editconfig[set[i].id]={rule:set[i].edit.rule,message:set[i].edit.message});
}
//모든 tr을 정렬용 배열에 넣습니다
for( i=0,l=rows.length;i
This.rows[i]=rows[i];
//모든 td를 탐색하고 일부 설정을 지정합니다
for( i=0,l=tabTads.length;i
// 헤드에 모든 td를 표시하고 드래그할 때 를 사용하세요.
i
//편집해야 하는 td에 edit 속성을 추가합니다
i>=length&&this.editconfig[i%length]&&tabTads[i].setAttribute('edit',i%length);
}
//드래그 및 확대/축소 작업 바인딩
addListener(this.thead,'mousedown',BindAsEventListener(this,this.dragOrWidth));
//드래그하면 td의 해당 열로 레코드가 이동됩니다
addListener(this.thead,'mouseover',BindAsEventListener(this,this.theadHover));
WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.
WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술
JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 소개: 인터넷의 대중화와 기술의 발전으로 점점 더 많은 레스토랑에서 온라인 주문 서비스를 제공하기 시작했습니다. 실시간 온라인 주문 시스템을 구현하기 위해 JavaScript 및 WebSocket 기술을 사용할 수 있습니다. WebSocket은 TCP 프로토콜을 기반으로 하는 전이중 통신 프로토콜로 클라이언트와 서버 간의 실시간 양방향 통신을 실현할 수 있습니다. 실시간 온라인 주문 시스템에서는 사용자가 요리를 선택하고 주문을 하면
WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 오늘날의 디지털 시대에는 점점 더 많은 기업과 서비스에서 온라인 예약 기능을 제공해야 합니다. 효율적인 실시간 온라인 예약 시스템을 구현하는 것이 중요합니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. WebSocket이란 무엇입니까? WebSocket은 단일 TCP 연결의 전이중 방식입니다.
JavaScript 및 WebSocket: 효율적인 실시간 일기 예보 시스템 구축 소개: 오늘날 일기 예보의 정확성은 일상 생활과 의사 결정에 매우 중요합니다. 기술이 발전함에 따라 우리는 날씨 데이터를 실시간으로 획득함으로써 보다 정확하고 신뢰할 수 있는 일기예보를 제공할 수 있습니다. 이 기사에서는 JavaScript 및 WebSocket 기술을 사용하여 효율적인 실시간 일기 예보 시스템을 구축하는 방법을 알아봅니다. 이 문서에서는 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 우리
JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용
JavaScript는 웹 개발에 널리 사용되는 프로그래밍 언어인 반면 WebSocket은 실시간 통신에 사용되는 네트워크 프로토콜입니다. 두 가지의 강력한 기능을 결합하면 효율적인 실시간 영상 처리 시스템을 만들 수 있습니다. 이 기사에서는 JavaScript와 WebSocket을 사용하여 이 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 첫째, 실시간 영상처리 시스템의 요구사항과 목표를 명확히 할 필요가 있다. 실시간 이미지 데이터를 수집할 수 있는 카메라 장치가 있다고 가정해 보겠습니다.