sitelink1  
sitelink2  
sitelink3  
sitelink4  
extra_vars4  
extra_vars5  
extra_vars6  
완전... 삽질 그자체... 2일동안 이것만 했는데 결국은... 읽기는 되는데 쓰기가 안됨

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
<title>Cugain’s Home</title>
<meta http-equiv=Content-Type content=text/html; charset=EUC-KR>
<link rel="StyleSheet" HREF="./cugain_css/default_style.css" type="text/css" title="style">
</head>
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" bgcolor="white">

<SCRIPT LANGUAGE="JavaScript">
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
xmlDoc.async = false;
xmlDoc.load("./cugain_musicplayer/mp3/mp3_list.xml"); // XML 파일 로드
xmlLoadMain();

/******************************************
        Main.
******************************************/
function xmlLoadMain() {
        var song_list = getMusicList("favorite");
        var apply_value = randSort(0, song_list.length);
        var new_song_list = getSortedList(song_list, apply_value);

        var newXmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0"); //새로운 xml문서 생성
        newXmlDoc.async = false;        
        newXmlDoc.load("./cugain_musicplayer/mp3/mp3_list.xml"); // XML 파일 로드
        newXmlDoc.save("./mp3.xml"); //세이브안됨... 아마도 스크립트가 서버에 파일을 생성하는 부분이 막힌듯함
}

/******************************************
        category정보를 받아서 음악리스트를 가져온다.
        return <song> Array
******************************************/
function getMusicList(category) {
        var music_tag_list = null;

        if(xmlDoc) {
                var finded_node = null;
                var index_node_list = xmlDoc.getElementsByTagName("index");
                var attribute_list = null;
                for(index_i=0; index_i<index_node_list.length; index_i++) {
                        attribute_list = index_node_list.item(index_i).attributes;
                        for(attribute_i=0; attribute_i<attribute_list.length; attribute_i++) {
                                if(attribute_list.item(attribute_i).text == category)
                                        finded_node = index_node_list.item(index_i);
                        }        
                }

                if(finded_node) {
                        music_tag_list = finded_node.childNodes;
                        return music_tag_list;
                } else {        alert("해당하는 카테고리가 없습니다.");        }
        } else {        alert("파일을 찾을 수 없습니다.");        }
}

/******************************************
        start_var부터 end_var까지 랜덤정렬된 숫자배열 리턴
        return Array
******************************************/
function randSort(start_var, end_var) {
    var_array = new Array();
        var rand_var = null;
        var looping = false;
        var array_loc = 0;
    for (i = start_var ; i <= end_var ; i++) {
                do {
                        looping = false;
                        rand_var = Math.floor(Math.random()*(end_var+1));

                        if(rand_var < start_var) { // 랜덤값이 시작값보다 작은 경우는 스킵하고 루프
                                looping = true;
                        } else {
                                if(var_array.length <= 0) { //최초 숫자는 그냥 입력 후 다시 루프
                                        var_array[array_loc] = rand_var;
                                        array_loc++;
                                        looping = true;
                                        //alert(rand_var);
                                } else if(var_array.length < (end_var-start_var+1)) {         //배열이 꽉 찼을 경우 그냥 루프를 빠져나간다                        
                                        for (j = 0 ; j < var_array.length ; j++) {
                                                if(var_array[j] == rand_var) { //배열에 이미 있는 숫자일 경우 다시 스킵하고 루프
                                                        looping = true;
                                                }
                                        }
                                }
                        }
                }while(looping);

                if(var_array.length < (end_var-start_var+1)) { //배열이 꽉 찼을 경우 그냥 루프를 빠져나간다
                        var_array[array_loc] = rand_var;
                        array_loc++;
                        //alert(rand_var);
                }
        }
        return var_array;
}

/******************************************
        배열과 소트방식을 받아 소팅후 배열로 리턴
        return Array
******************************************/
function getSortedList(list, apply_value) {
        var new_list = new Array();
        for(i=0; i<list.length; i++) {
                new_list[i] = list[apply_value[i]];
        }
        return new_list;
}
</SCRIPT>

</body>
</html>
번호 제목 글쓴이 날짜 조회 수
217 iframe auto resize (cross browsing) 황제낙엽 2011.05.13 658
216 Javascript CORS/XSS 극복하는(피하는) 방법 file 황제낙엽 2017.07.31 648
215 [JavaScript Tutorials] Introducing the closure (해석중) 황제낙엽 2009.04.10 555
214 입력받은 날짜와 현재 날짜와의 비교 함수 황제낙엽 2019.08.02 500
213 Javascript 를 사용하여 Binary File 읽기 황제낙엽 2010.09.29 500
212 url encode & decode 황제낙엽 2011.10.30 469
» 자바스크립트로 서버의 XML파일을 접근 (실패했슴) 황제낙엽 2005.12.11 444
210 XMLHttpRequest 의 이벤트 onreadystatechange 황제낙엽 2012.05.30 412
209 Defining classes and inheritance (클래스 정의와 상속) 황제낙엽 2011.03.24 392
208 Javascript 내장객체 String 황제낙엽 2007.04.10 392
207 JavaScript Array.push Performance 황제낙엽 2011.11.21 380
206 JavaScript Touch and Gesture Events iPhone and Android 황제낙엽 2012.04.12 337
205 Faster JavaScript Memoization For Improved Application Performance 황제낙엽 2011.11.04 333
204 진행 상황 추적하기(XMLHttpRequest.readyState) file 황제낙엽 2012.05.23 324
203 String Performance: Getting Good Performance from Internet Explorer (IE7) 황제낙엽 2011.11.24 312
202 window.postMessage() 황제낙엽 2020.07.29 303
201 unshift() Method 황제낙엽 2009.03.02 287
200 CORS(Cross-Origin Resource Sharing) - 5 file 황제낙엽 2017.03.07 261
199 Jasmine 테스트 및 CI 구축 가이드 황제낙엽 2016.11.16 254
198 정규식 정리 황제낙엽 2008.11.24 252