엠

많이 쓰이는 자바스크립트

· 2006-12-15 (금) 12:20:54 · 4369
/*---------------------------------------------

* String 문자 자르기.
---------------------------------------------*/
String.prototype.cut = function(len) {
var str = this;
var l = 0;
for (var i=0; i<str.length; i++) {
l += (str.charCodeAt(i) > 128) ? 2 : 1;
if (l > len) return str.substring(0,i);
}
return str;
}

/*---------------------------------------------

* String 공백 지우기.
---------------------------------------------*/
String.prototype.trim = function(){
// Use a regular expression to replace leading and trailing
// spaces with the empty string
return this.replace(/(^\s*)|(\s*$)/g, "");
}

/*---------------------------------------------
* String 총 바이트 수 구하기.
---------------------------------------------*/
String.prototype.bytes = function() {
var str = this;
var l = 0;
for (var i=0; i<str.length; i++) l += (str.charCodeAt(i) > 128) ? 2 : 1;
return l;
}

/*---------------------------------------------
* iframe의 height를 body의 내용만큼 자동으로 늘려줌.
---------------------------------------------*/
function resizeRetry(){
if(ifrContents.document.body.readyState == "complete"){
clearInterval(ifrContentsTimer);
}
else{
resizeFrame(ifrContents.name);
}
}

var ifrContentsTimer;
var ifrContents;

function resizeFrame(name){

var oBody = document.body;
var oFrame = parent.document.all(name);
ifrContents = oFrame;
var min_height = 613; //iframe의 최소높이(너무 작아지는 걸 막기위함, 픽셀단위, 편집가능)
var min_width = 540; //iframe의 최소너비
var i_height = oBody.scrollHeight + 10;

var i_width = oBody.scrollWidth + (oBody.offsetWidth-oBody.clientWidth);

if(i_height < min_height) i_height = min_height;
if(i_width < min_width) i_width = min_width;
oFrame.style.height = i_height;
ifrContentsTimer = setInterval("resizeRetry()",100);
}

/*---------------------------------------------
* 클립보드에 해당 내용을 복사함.
---------------------------------------------*/

function setClipBoardText(strValue){
window.clipboardData.setData('Text', strValue);
alert("" + strValue +" \n\n위 내용이 복사되었습니다.\n\nCtrl + v 키를 사용하여, 붙여 넣기를 사용하실 수 있습니다.");
}


/*---------------------------------------------
select 에서 기존의 선택 값이 선택되게
----------------------------------------------*/
function selOrign(frm,val){
for(i=0; i < frm.length ; i++){
if(frm.options[i].value == val){
frm.options.selectedIndex = i ;
return;
}
}
}

/*---------------------------------------------
checkbox 에서 기존의 선택 값이 선택되게
----------------------------------------------*/
function chkboxOrign(frm,val){
if(frm.length == null){
if(frm.value == val)
frm.checked = true;
}else{
for(i=0;i<frm.length;i++){
if(frm[i].value == val){
frm[i].checked = true;
}
}
return;
}
}

function chkboxOrign_multi(frm,objchk,val){
var i = 0;
for(i=0;i<frm.elements.length;i++){
if(frm.elements[i].name == objchk){
if(frm.elements[i].value == val){
frm.elements[i].checked = true;
}
}
}
}

/*---------------------------------------------
radio 에서 기존의 선택 값이 선택되게
----------------------------------------------*/
function radioOrign(frm,val){
for(i=0; i < frm.length ; i++){
if(frm[i].value == val){
frm[i].checked = true ;
return ;
}
}
}

/*---------------------------------------------
숫자만 입력받기
예) onKeyDown="return onlyNum();"
----------------------------------------------*/
function onlyNum(){
if(
(event.keyCode >= 48 && event.keyCode <=57) ||
(event.keyCode >= 96 && event.keyCode <=105) ||
(event.keyCode >= 37 && event.keyCode <=40) ||
event.keyCode == 9 ||
event.keyCode == 8 ||
event.keyCode == 46
){
//48-57(0-9)
//96-105(키패드0-9)
//8 : backspace
//46 : delete key
//9 :tab
//37-40 : left, up, right, down
event.returnValue=true;
}
else{
//alert('숫자만 입력 가능합니다.');
event.returnValue=false;
}
}

/*---------------------------------------------
지정된 길이반큼만 입력받기
예) onKeyUp="return checkAllowLength(현재숫자보여지는객체,숫자셀객체 ,80);" onKeyDown="return checkAllowLength(현재숫자보여지는객체,숫자셀객체 ,80);"
----------------------------------------------*/

function checkAllowLength(objView, objTar, max_cnt){
if(event.keyCode > 31 || event.keyCode == "") {
if(objTar.value.bytes() > max_cnt){
alert("최대 " + max_cnt + "byte를 넘길 수 없습니다.");
objTar.value = objTar.value.cut(max_cnt);
}
}
objView.value = objTar.value.bytes();
}


/*--------------------------------------------
이미지 리사이즈
---------------------------------------------*/
function resizeImg(imgObj, max_width, max_height){

var dst_width;
var dst_height;
var img_width;
var img_height;

img_width = parseInt(imgObj.width);
img_height = parseInt(imgObj.height);

if(img_width == 0 || img_height == 0){
imgObj.style.display = '';
return false;
}

// 가로비율 우선으로 시작
if(img_width > max_width || img_height > max_height) {
// 가로기준으로 리사이즈
dst_width = max_width;
dst_height = Math.ceil((max_width / img_width) * img_height);

// 세로가 max_height 를 벗어났을 때
if(dst_height > max_height) {
dst_height = max_height;
dst_width = Math.ceil((max_height / img_height) * img_width);
}

imgObj.width = dst_width;
imgObj.height = dst_height;
}
// 가로비율 우선으로 끝

imgObj.style.display = '';

return true;
}
/*---------------------------------------------
xml data 읽어오기
----------------------------------------------*/
function getXmlHttpRequest(_url, _param){
var objXmlConn;
try{objXmlConn = new ActiveXObject("Msxml2.XMLHTTP.3.0");}
catch(e){try{objXmlConn = new ActiveXObject("Microsoft.XMLHTTP");}catch(oc){objXmlConn = null;}}

if(!objXmlConn && typeof XMLHttpRequest != "undefined") objXmlConn = new XMLHttpRequest();

objXmlConn.open("GET", _url + "?" + _param, false);
objXmlConn.send(null);

//code|message 형태로 리턴
return objXmlConn.responseText.trim().split("|");
}


/*---------------------------------------------------
cookie 설정
-------------------------------------------------------*/

function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1) endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) { //while open
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
} //while close
return null;
}

function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (2 < argc) ? argv[2] : null;
var path = (3 < argc) ? argv[3] : null;
var domain = (4 < argc) ? argv[4] : null;
var secure = (5 < argc) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" :
("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}

/* ---------------------------------------------
* 함수명 : checkSpecialChar
* 설 명 : 특수문자 체크
* 예) if(!checkSpecialChar()) return;
---------------------------------------------*/
function checkSpecialChar(_obj){
if(_obj.value.search(/[\",\',<,>]/g) >= 0) {
alert("문자열에 특수문자( \", ', <, > )가 있습니다.\n특수문자를 제거하여 주십시오!");
_obj.select();
_obj.focus();
}
}<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 16:57:14 JavaScript에서 이동 됨]</div>
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
07-10-13 조회 5,125
07-10-03 조회 4,108
07-10-03 조회 3,298
07-10-03 조회 2,528
07-10-03 조회 4,622
07-10-02 조회 2,961
07-10-01 조회 3,585
07-09-28 조회 3,498
07-09-27 조회 4,563
07-08-16 조회 6,410
07-08-04 조회 2,858
07-07-25 조회 6,124
07-07-05 조회 4,007
07-07-02 조회 4,553
07-06-30 조회 4,457
07-06-20 조회 7,343
07-06-20 조회 3,953
07-06-05 조회 4,131
07-05-26 조회 3,161
07-05-17 조회 9,154
07-05-17 조회 5,198
07-05-04 조회 6,126
07-04-15 조회 6,211
07-04-13 조회 3,984
07-04-11 조회 3,393
07-03-20 조회 3,568
07-03-02 조회 6,790
07-02-27 조회 6,058
07-02-22 조회 4,450
07-01-30 조회 6,276
07-01-30 조회 1만
06-12-20 조회 3,774
06-12-18 조회 4,616
06-12-15 조회 4,587
06-12-15 조회 3,815
06-12-15 조회 3,204
06-11-30 조회 3,643
06-11-27 조회 4,543
06-10-24 조회 6,455
06-10-17 조회 4,765
06-09-22 조회 4,510
06-09-21 조회 6,009
06-09-21 조회 3,929
06-09-15 조회 6,547
06-08-20 조회 3,689
06-07-19 조회 3,334
06-07-14 조회 4,230
06-07-14 조회 4,098
06-07-11 조회 5,703
06-06-08 조회 4,284
06-06-08 조회 4,194
06-05-24 조회 3,512
06-05-24 조회 4,896
06-05-17 조회 3,607
06-05-16 조회 4,356
06-05-14 조회 6,052
06-05-12 조회 3,616
06-05-06 조회 4,256
06-05-06 조회 4,339
06-05-06 조회 3,644
06-05-06 조회 3,711
06-05-06 조회 4,159
06-04-25 조회 4,026
06-03-23 조회 5,481
06-01-20 조회 4,051
06-01-04 조회 4,262
05-12-30 조회 4,138
05-12-21 조회 4,812
05-11-09 조회 4,017
05-11-09 조회 3,801
05-10-09 조회 3,459
05-09-21 조회 6,848
05-08-14 조회 4,328
05-08-04 조회 5,509
05-07-14 조회 4,573
05-06-15 조회 4,963
05-04-23 조회 4,559
05-04-20 조회 5,017
05-04-19 조회 1.1만
05-04-19 조회 5,978
05-03-15 조회 3,796
05-03-15 조회 4,238
05-03-13 조회 2,921
05-03-13 조회 3,445
05-03-13 조회 3,427
05-03-13 조회 2,731
05-03-13 조회 5,773
05-03-13 조회 5,409
05-03-13 조회 4,340
05-03-13 조회 4,633
05-03-13 조회 7,894
05-03-13 조회 4,391
05-03-13 조회 3,476
05-03-13 조회 3,468
05-03-13 조회 8,019
05-03-13 조회 5,477
05-03-13 조회 4,126
05-03-12 조회 3,771
05-03-12 조회 4,477
05-02-24 조회 4,624