// (2021.1.12, 차재복, Cha Jae Bok, http://www.ktword.co.kr)
// more 요소, div 생성, 상세 (code:1,manual:2,run:3,comp:4) 보여주기
// more 상세 보여주기 (이벤트처리기)
function moreShow (e) {
// <- ex_run/navi_testing.js, reform/reform_editor.js
// liLineSpan
let liLineSpan = this;
// data 추출 및 JSON parse 후 object화
let data = JSON.parse(liLineSpan.dataset.dataObject);
// data : reform 및 reform_more 테이블 내 해당 레코드 (parent,id,sub_seq,title,yoyak,path2node,more_ptr,...)
// 상세 출력용 display Box
let detailBox;
detailBox = document.getElementById('detail_'+data.id);
// 기존에 요소 펼쳐 있으면 숨김
if (detailBox) {
itemShowHide(detailBox, liLineSpan); // base_utils/common_utils.js
// 기존에 요소 없으면 새로 생성 후 출력
} else {
if(data.more_type=='1' || data.more_type=='2') { // 1: code, 2 : manual
// liLineSpan 직후에 table 생성
detailBox = document.createElement('table');
detailBox.id = 'detail_'+data.id;
embed_display(data, liLineSpan, detailBox); // ex_run/embed_display.js
insertAfter(liLineSpan, detailBox);
} else if(data.more_type=='3') { // 3 : run (구현보기)
// liLineSpan 직후에 div 생성
detailBox = run_div_create(data, liLineSpan); // ex_run/navi_more.js
detailBox.id = 'detail_'+data.id;
// 정해진 함수 실행
window[data.func](detailBox);
// reform_more.func 값 => language/language_testing/keyword() => language/language.php
} else if(data.more_type=='4') { // 4 : comp
// liLineSpan 직후에 div 생성
detailBox = run_div_create(data, liLineSpan); // ex_run/navi_more.js
detailBox.id = 'detail_'+data.id;
embed_display(data, liLineSpan, detailBox); // ex_run/embed_display.js
insertAfter(liLineSpan, detailBox);
}
}
}
// 실행 결과 보여주기 위한, div 요소 생성
function run_div_create(data, afterIt) {
// div 요소 생성
let div = document.createElement("div");
div.id = 'div_'+data.id;
// div style
div.style.border = '1px gray dotted';
div.style.margin = '5px';
div.style.padding = '10px';
// div 요소를 실제 DOM 트리에 적용 (화면에 실제 보임)
return insertAfter(afterIt, div);
}
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"