웹마스터 팁



스크립트를 구할때 자주 가는 사이트인데 좋은게 올라와 있더군요

각자 사용자의 입맛에 맛게 조금만 코딩하거나 모양을 변화 준다면 좋을거 같습니다

세이나 네이버 혹은 msn등 요즘 왠만한 사이트에서 쓰는 메뉴 추가 삭제 수정에 쓰는 스크립트와

같은 분류라 생각하시면 될듯

아울러 해피 스크립트의 운영자이신 매직님에게도 감사합니다 소스 올릴수 있게 허락해 주셔서^^


아래의 스크립트를  따서 실행해 보세요


///////////////////////////////////////////////////////////////////////

<script language="javascript">
<!--
var cso_temp = new Array();

function Change_SelectOption(cso_type) {
        with(document.cso_form) {
                if(cso_type != "add") {
                        if(cso_main.options.selectedIndex == -1) {
                                if(cso_type == "up" || cso_type == "edit" || cso_type == "del") {
                                        cso_temp[0] = 0;
                                } else
                                if(cso_type == "down") {
                                        cso_temp[0] = cso_main.options.length-1;
                                }
                                alert('선택된게 없으니 '+cso_temp[0]+'번째 Option으로 선택합니다.');
                                cso_main.options[cso_temp[0]].selected = true;
                                Change_SelectOption_Del('select');
                        } else {
                                if(cso_type == "up") {
                                        if(cso_main.options.selectedIndex == 0) {
                                                alert('위로 올리지 못합니다.');
                                        } else {
                                                Change_SelectOption_UpnDown('up');
                                        }
                                } else
                                if(cso_type == "down") {
                                        if(cso_main.options.selectedIndex == cso_main.options.length-1) {
                                                alert('아래로 내리지 못합니다.');
                                        } else {
                                                Change_SelectOption_UpnDown('down');
                                        }
                                } else
                                if(cso_type == "del") {
                                        Change_SelectOption_Del('execute');
                                } else
                                if(cso_type == "edit") {
                                        Change_SelectOption_AddnEdit('edit');
                                }
                        }
                } else {
                        Change_SelectOption_AddnEdit('add');
                }
        }
}

function Change_SelectOption_UpnDown(csoud_type){
        with(document.cso_form) {
                if(csoud_type == 'up') {
                        csoud_type = '-';
                } else
                if(csoud_type == 'down') {
                        csoud_type = '+';
                }
                cso_temp[0] = cso_main.options.selectedIndex;
                cso_temp[1] = eval('cso_main.options[cso_temp[0]'+csoud_type+'1].text');
                cso_temp[2] = eval('cso_main.options[cso_temp[0]'+csoud_type+'1].value');
                eval('cso_main.options[cso_temp[0]'+csoud_type+'1] = new Option(cso_main.options[cso_temp[0]].text,cso_main.options[cso_temp[0]].value)');
                cso_main.options[cso_temp[0]] = new Option(cso_temp[1],cso_temp[2]);
                eval('cso_main.options[cso_temp[0]'+csoud_type+'1].selected = true');
                Change_SelectOption_Del('select');
        }
}

function Change_SelectOption_Del(csod_type) {
        with(document.cso_form) {
                if(csod_type == 'select') {
                        cso_delnedit_index.value = cso_main.options.selectedIndex;
                        if(cso_main.options[cso_main.options.selectedIndex].text == '' && cso_main.options[cso_main.options.selectedIndex].value == '') {
                                cso_main.options[0].selected = true;
                        } else {
                                cso_delnedit_text.value = cso_main.options[cso_main.options.selectedIndex].text;
                                cso_delnedit_value.value = cso_main.options[cso_main.options.selectedIndex].value;
                        }
                } else
                if(csod_type == 'execute') {
                        if(confirm(cso_main.options.selectedIndex+'번째 Option을 삭제합니까?')) {
                                if(cso_main.options.selectedIndex != 0) {
                                        for(var i=0; i<cso_main.options.selectedIndex; i++) {
                                                cso_temp[i] = new Array();
                                                cso_temp[i][0] = cso_main.options[i].text;
                                                cso_temp[i][1] = cso_main.options[i].value;
                                        }
                                }
                                for(i=cso_main.options.selectedIndex+1; i<cso_main.options.length; i++) {
                                                cso_temp[i-1] = new Array();
                                                cso_temp[i-1][0] = cso_main.options[i].text;
                                                cso_temp[i-1][1] = cso_main.options[i].value;
                                }
                                for(i=0; i<cso_temp.length; i++) {
                                        cso_main.options[i] = new Option(cso_temp[i][0],cso_temp[i][1]);
                                }
                                cso_main.options[cso_main.options.length-1] = new Option();
                                if(cso_main.options[0].text == '' && cso_main.options[0].value == '') {
                                        alert('Option의 값은 최소 1개로 0번째 Option에 임시값을 입력합니다.');
                                        cso_main.options[0] = new Option('Temp','Temp');
                                }
                                cso_main.options[0].selected = true;
                                Change_SelectOption_Del('select');
                                if(cso_main.options[0].text == 'Temp' && cso_main.options[0].value == 'Temp') {
                                        cso_delnedit_text.select();
                                }
                        }
                }
        }
}

function Change_SelectOption_AddnEdit(csoae_type) {
        with(document.cso_form) {
                if(csoae_type == 'edit') {
                        csoae_type = 'deln'+csoae_type;
                }
                if(eval("cso_"+csoae_type+"_text.value != '' && cso_"+csoae_type+"_value.value != ''")) {
                        if(eval("cso_"+csoae_type+"_text.value.toLowerCase() != 'temp' && cso_"+csoae_type+"_value.value.toLowerCase() != 'temp'")) {
                                if(csoae_type == 'add') {
                                        cso_temp[0] = Change_SelectOption_NullCheck(cso_main.options.length);
                                } else
                                if(csoae_type == 'delnedit') {
                                        cso_temp[0] = 'cso_main.options.selectedIndex';
                                }
                                eval("cso_main.options["+cso_temp[0]+"] = new Option(cso_"+csoae_type+"_text.value,cso_"+csoae_type+"_value.value)");
                                if(csoae_type == 'delnedit') {
                                        cso_temp[0] = 'cso_delnedit_index.value';
                                }
                                eval('cso_main.options['+cso_temp[0]+'].selected = true');
                                if(csoae_type == 'add') {
                                        cso_main.size = cso_main.options.length;
                                        cso_add_text.value = '';
                                        cso_add_value.value = '';
                                        Change_SelectOption_Del('select');
                                }
                        } else {
                                alert('임시값은 허용하지 않습니다.');
                                eval("cso_temp[0] = cso_"+csoae_type+"_text.value.toLowerCase() == 'temp' ? 'text' : 'value'");
                                eval('cso_'+csoae_type+'_'+cso_temp[0]+'.select()');
                        }
                } else {
                        eval("cso_temp[0] = cso_"+csoae_type+"_text.value == '' ? 'Text' : 'Value'");
                        alert(cso_temp[0]+'값이 비었습니다.');
                        eval('cso_'+csoae_type+'_'+cso_temp[0].toLowerCase()+'.focus()');
                }
        }
}

function Change_SelectOption_NullCheck(csonc_no) {
        with(document.cso_form) {
                if(cso_main.options[csonc_no-1].text == '' && cso_main.options[csonc_no-1].value == '') {
                        Change_SelectOption_NullCheck(csonc_no-1);
                } else {
                        cso_temp[1] = csonc_no;
                }
        }
        return cso_temp[1];
}
//-->
</script>

<form name="cso_form">
<select name="cso_main" size="5" onchange="Change_SelectOption_Del('select');">
<option value="Example_0">Example_0
<option value="Example_1">Example_1
<option value="Example_2">Example_2
<option value="Example_3">Example_3
<option value="Example_4">Example_4
</select>

<input type="button" value="UP" onclick="Change_SelectOption('up');">
<input type="button" value="DOWN" onclick="Change_SelectOption('down');">

<br><br>

text : <input type="text" name="cso_add_text"><br>
value : <input type="text" name="cso_add_value">
<input type="button" value="ADD" onclick="Change_SelectOption('add');">

<br><br>

index : <input type="text" name="cso_delnedit_index" readonly><br>
text : <input type="text" name="cso_delnedit_text"><br>
value : <input type="text" name="cso_delnedit_value">
<input type="button" value="EDIT" onclick="Change_SelectOption('edit');">
<input type="button" value="DEL" onclick="Change_SelectOption('del');">
</form>
제목 글쓴이 날짜
크롬리스 완벽해결! IE.2.0부터 Netscape까지 작동가능!! [13] 김민호 2002.12.16
오른쪽 클릭 메뉴 [6] 디아릭스 2002.12.16
select form 으로 새창띄우기(수정:2002-12-19) [3] dolufy 2002.12.11
홈페이지에 머무른 시간을 알림창으로 나타내기. [3] 시즌오브드림 2002.12.10
출렁이며 내려오는 공지창.. [3] 아벨라 2002.12.10
아래 새창에 맞게 이미지 띄우기 더더 업그레이드 판! [6] ATply 2002.12.09
이동 메뉴 (Netscape 가능 NZEO.com 소스) [9] 박영창 2002.12.08
아래 이미지크기에 맞게 새창띄우는 소스(기능개선판) (-_-) v [10] 행복한고니 2002.12.07
[re] 오류 아닌 오류 나시는 분덜... 임병찬 2003.04.22
이미지 크기에 맞게 새창띄우는 자바소스인데요~ [3] 새벽이슬 2002.12.07
정말 쉬운 이미지 롤오버 [3] Nopedy Lee 2002.12.05
엔지오처럼 메뉴가 아래위로 움직이는 소스[steelheart님 만듬]. [10] 김태경 2002.11.23
iframe 내용에 맞게 자동으로 크기 조절하기 [36] 행복한고니 2002.11.21
[파파스 1] 즐겨찾기 추가기능 소스 [5] 파파스 2002.11.20
제로님 Select Box 조금 바꾼거... [5] 행복한고니 2002.11.18
아래 행복한고니님의 할아버지 소스의 업글(?) 버젼입니다. [7] (づ_-) 커터칼 2002.11.18
[re] 아래 행복한고니님의 할아버지 소스의 업글(?) 버젼입니다. [2] Mahican 2002.12.02
이미지 변환함수(롤오버) [3] 행복한고니 2002.11.18
글상자글적으면 적은수가 숫자로 표시(글제한할때좋죠). [2] 아벨라 2002.11.18
레이어를 원하는 곳에 고정하기입니다. [7] 아벨라 2002.11.14