001002003004005006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054055056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089090091092093094095096097
// (2020.10.5, 차재복, Cha Jae Bok, http://www.ktword.co.kr) // [caller] navi_testing.js, ... // 지정된 div 요소(out)에, ajax에 의해 language.php 웹페이지를 표출 function keyword (out, lang, p, find, act, word_no) { if (glob_var.lang && !lang) lang = glob_var.lang; if (glob_var.p && !p) p = glob_var.p; if (!lang) lang = 'JS'; if (!p) p = '1'; if (!find) find = ''; if (!act) act = ''; // alert('lang='+lang+',p='+p+',find='+find+',act='+act+',word_no='+word_no); // 디버깅용 if (typeof out == 'string') out = document.getElementById(out); let method = 'get'; let url = '../language/language.php?bare=1&lang='+lang+'&p='+p+'&find='+find+'&act='+act+'&word_no='+word_no; let xhr = new XMLHttpRequest(); xhr.open(method, url); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { out.innerHTML = xhr.responseText; // 출력 src_menus(out, lang, p); } }; xhr.send(); } // ajax에 의해 표출된 화면에서, 필요 요소 마다(주로, a 요소) ajax 연결 function src_menus (out, lang, p) { // language 구분 form let menus = out.getElementsByClassName('lang_btn'); for (let i = 0, len=menus.length; i < len; i++) { menus.item(i).addEventListener('click', function(e) { e.preventDefault(); let lang = menus.item(i).value; keyword(out, lang); }); } // page 구분 a 링크 let elems = out.getElementsByClassName('pages') for (let i = 0, len=elems.length; i < len; i++) { elems.item(i).addEventListener('click', function(e) { e.preventDefault(); let page = elems.item(i).dataset.page; keyword(out, lang, page); }); } // 편집자 한 if (glob_var.user_type > 0) { // 해당 keyword를 각 소스별로 찾아 등록 let edits = out.getElementsByClassName('lang_edit'); for (let i = 0, len=edits.length; i < len; i++) { edits.item(i).addEventListener('click', function(e) { e.preventDefault(); let href = edits.item(i).getAttribute('href'); query = href.substring(href.lastIndexOf('?')+1); let searchParms = new URLSearchParams(query); let find = searchParms.get('find'); keyword(out, lang, p, find, 'search'); }); } // 외부 자바스크립트 코드 삽입 실행 ('../language/language.js') let isIncludeJS = document.getElementById('language_js'); if(!isIncludeJS) includeJS('../language/language.js','language_js'); // 신규 keyword 추가 및 용어해설 번호 추가 let no_adds = document.getElementsByClassName('no_add'); if (no_adds) { for(let i=0; i<no_adds.length; i++){ no_adds.item(i).addEventListener('click', function (e) { e.preventDefault(); let keyTarget = e.target; if(!keyTarget.nextSibling || keyTarget.nextSibling.nodeName!='DIV') { div_create(keyTarget); // ex_run/navi_more.js } else { itemShowHide(keyTarget.nextSibling, e.target); // base_utils/common_utils.js } }); } } } }