// (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
}
});
}
}
}
}
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"