1<!-- ë°ë¼ë¯¸ ì¶ê° : ë²ì ì© --> 2//------------------------------------------------- 3// êµ¬ê¸ ë²ì기 ì°ë 4//------------------------------------------------- 5// - ë²ì API í¸ì¶ í¨ì 6// ì¶ê°ë´ì© : xMode : title:ì 목, content:ë´ì© 7//function FuncAJaxPost(ContID, PD, objSuc, objErr) { 8function FuncAJaxPost(xMode, ContID, PD, objSuc, objErr) { 9 //alert("ë²ìì§í : 1111"); 10 $.ajax({ 11 url:'api.trans.google.php', 12 method:'POST', 13 dataType: 'json',//'text',//// 14 //contentType: 'application/json', 15 data: PD,//JSON.stringify(PD), 16 success: function(data, textStatus, jQxhr) { 17 // ìë¬ ìëµ ì²ë¦¬ 18 if(data['stateCode'] != '200') { 19 console.error('[ë²ì ì¤ë¥]', data['stateMsg'], data['msg']); 20 alert('[ë²ì ì¤ë¥] ' + data['msg']); 21 return; 22 } 23 // ì ì ì¼ ê²½ì° í´ë¹ div ì ì문 ë°ì´í° ë£ê¸° 24 if(xMode == "title") $("#view_subjid_"+ContID).html(data['data']); 25 if(xMode == "content") $("#view_contid_"+ContID).html(data['data']); 26 } 27 , error: objErr 28 }); 29} 30// í ì¤í¸ ì ì¡ 31function FuncT() { 32 var PostData = { 33 "LenSource" : "ko", 34 "LenTarget" : "ja", 35 "strContent": "ìë " 36 }; 37 FuncAJaxPost(PostData, FuncSuccess, FuncError); 38} 39// - ì ì 40function FuncSuccess(data, textStatus, jQxhr) { 41 //alert("ì ì ê²°ê³¼ :", data['data']); 42 //alert(data); 43 if(data['stateCode'] == "200") { 44 console.log("ì ì ê²°ê³¼ : ì ì"); 45 } else { 46 console.log("ì ì ê²°ê³¼ : ì¤ë¥"); 47 } 48} 49// - ì¤ë¥ ì¼ë ê²°ê³¼ê° 50function FuncError(jqXhr, textStatus, errorThrown) { 51 alert("íµì ì¤ë¥ê° ë°ìíìµëë¤. (HTTP Status: " + jqXhr.status + ")\n\nìëµ ë´ì©:\n" + jqXhr.responseText); 52 console.error("ì¤ë¥ ê²°ê³¼ :", jqXhr); 53} 54 55/** 56 ContID : ì½í í¸ ë´ì© ID 57 LenSource : ì본 ì¸ì´ 58 LenTarget : ë³ê²½í ì¸ì´ 59**/ 60function FuncTrans(ContID, LenSource, LenTarget) { 61 //alert("ContID : "+ContID); 62 let contStr = $("#contid_"+ContID).html(); 63 let subjStr = $("#subjid_"+ContID).html(); 64 //alert("ì 목 : "+subjStr); 65 // íê²ì´ íê¸ ì´ë©´ ì문ì ë리기 66 if(LenTarget == "ko") { 67 //$("#view_contid_"+ContID).html(contStr); 68 //$("#view_subjid_"+ContID).html(subjStr); 69 //return ; 70 } 71 72 console.log("ë²ì ì§í :", LenTarget); 73 74 // ì 목 ë²ì 75 var PostData = {"LenSource" : LenSource,"LenTarget" : LenTarget,"strContent": subjStr}; 76 FuncAJaxPost("title", ContID, PostData, FuncSuccess, FuncError); 77 // 본문 ë²ì 78 var PostData2 = {"LenSource" : LenSource,"LenTarget" : LenTarget,"strContent": contStr}; 79 FuncAJaxPost("content", ContID, PostData2, FuncSuccess, FuncError); 80} 81 82 83/****************************************** 84 ì¤ìê° ëê¸ íë©´ ê°ì§ ì© 85******************************************/ 86 87// ëê¸ ì ì© ë²ì í¨ì 88function FuncCommentAJaxPost(xThis, PD, oldTxt, objErr) { 89 $.ajax({ 90 url:'api.trans.google.php', 91 method:'POST', 92 dataType: 'json',//'text',//// 93 //contentType: 'application/json', 94 data: PD,//JSON.stringify(PD), 95 success: function(data, textStatus, jQxhr) { 96 // ìë¬ ìëµ ì²ë¦¬ 97 if(data['stateCode'] != '200') { 98 console.error('[ëê¸ ë²ì ì¤ë¥]', data['stateMsg'], data['msg']); 99 alert('[ë²ì ì¤ë¥] ' + data['msg']); 100 return; 101 } 102 let strTran = data['data']; 103 // ì ì ì¼ ê²½ì° í´ë¹ div ì ì문 ë°ì´í° ë£ê¸° 104 console.log("data['data']", data['data']); 105 let oldHtml = $(xThis).closest('div[comment]').html(); 106 let oldHtml1 = $(xThis).closest('div[comment]').children("div[commentHtml]").html(); 107 console.log("oldHtml1", oldHtml1, "contents() ", $(xThis).closest('div[comment]').contents().length); 108 // ëê¸ì ë´ì© ì¤ html í ê·¸ê° ë¤ì´ ìì¼ë©´ ë³ë ì²ë¦¬ 109 let newHtml = ""; 110 if($(xThis).closest('div[comment]').contents().length > 5) { // í¹ì문ì html í ê·¸ê° ìì ë 111 console.log("oldTxt", oldTxt); 112 console.log("oldHtml1", oldHtml1); 113 console.log("strTran", strTran); 114 115 //newHtml = oldHtml.replace(new RegExp('' + oldTxt + '', 'g'), strTran); 116 //newHtml = oldHtml1.replace(oldHtml1, strTran); 117 newHtml = strTran; 118 $(xThis).closest('div[comment]').children("div[commentHtml]").html(newHtml); 119
120 // ìì±ì ì´ë¦ ìëë¡ ë³ê²½ 121 var WriterName = $(xThis).closest('div[addTrans]').prev().html(); 122 $(xThis).closest('div[comment]').children("div[commentHtml]").children("span[user_id]").html(WriterName); 123 // ëê¸ ì´ë¦ì´ ìì¼ë¡ ì¤ê² í기. 124 var span = $(xThis).closest('div[comment]').children("div[commentHtml]").find("span[user_id]"); 125 var text = span.clone().wrap('<div>').parent().html(); 126 span.remove(); 127 $(xThis).closest('div[comment]').children("div[commentHtml]").prepend(text); 128 } else { 129 newHtml = oldHtml1.replace(new RegExp('' + FuncEscapeHtml(oldTxt) + '', 'g'), strTran); 130 $(xThis).closest('div[comment]').html(newHtml); 131 // ìì±ì ì´ë¦ ìëë¡ ë³ê²½ 132 var WriterName = $(xThis).closest('div[addTrans]').prev().html(); 133 $(xThis).closest('div[comment]').children("div[commentHtml]").children("span[user_id]").html(WriterName); 134 // ëê¸ ì´ë¦ì´ ìì¼ë¡ ì¤ê² í기. 135 //var span = $(xThis).closest('div[comment]').children("div[commentHtml]").find("span[user_id]"); 136 //var text = span.text(); 137 //span.remove(); 138 //$(xThis).closest('div[comment]').children("div[commentHtml]").prepend(text); 139 } 140 141 //console.log(newHtml); 142 } 143 , error: objErr 144 }); 145} 146// - ì¤ë¥ ì¼ë ê²°ê³¼ê° 147function FuncCommentError(jqXhr, textStatus, errorThrown) { 148 alert("íµì ì¤ë¥ê° ë°ìíìµëë¤. (HTTP Status: " + jqXhr.status + ")\n\nìëµ ë´ì©:\n" + jqXhr.responseText); 149 console.error("ì¤ë¥ ê²°ê³¼ :", jqXhr); 150} 151 152// ëì ë ¸ëì ìµì ì ì¤ì í©ëë¤. 153$(window).ready(function() { 154 155 156 var targetNode = $('body')[0]; 157 var observerOptions = { 158 childList: true, // ìì ë ¸ëì ë³ê²½ ê°ì§ 159 subtree: true, // 모ë íì í¸ë¦¬ì ë³ê²½ë ê°ì§ 160 characterData: true // í ì¤í¸ ë´ì© ë³ê²½ ê°ì§ 161 }; 162 163 // MutationObserver ì¸ì¤í´ì¤ë¥¼ ìì±íê³ ì½ë°± í¨ì를 ì ìí©ëë¤. 164 var observer = new MutationObserver(function (mutations) { 165 166 mutations.forEach(function (mutation) { 167 // ë³ê²½ì´ ê°ì§ëìì ë ì¤íí ì½ë를 ìì±í©ëë¤. 168 var changedNode = mutation.target; 169 var CommList = $(changedNode).find('div [comment]'); 170 //console.log('ë³ê²½ ê°ì§ mutation.target :', changedNode); 171 172 // ì ë ¥ ë°ì¤ì ë§í¬ ë¶ì¬ ë£ê¸° í ë ìì´í°ìì ë§í¬ ìì ëë íì íì¸ 173 //var InputBox = $(changedNode).find('div [article]'); 174 //var CommALink = $(changedNode).find('a [href]'); 175 //console.log('ë³ê²½ ê°ì§ ì ë ¥ ë°ì¤ : InputBox', InputBox); 176 //if(CommALink.text() == "") { 177 // //console.log('ë³ê²½ ê°ì§ A Link : ë§í¬ í ì¤í¸ ì¬ë¼ì§'); 178 //} 179 /* 180 var divArticle = $(changedNode).find('div [article]'); 181 //divArticle.each(function(index, element) { 182 var InputBox = $(changedNode).find('div [contenteditable]'); 183 console.log('ì ë ¥ ë°ì¤ ë´ì© HTML : ', $(changedNode).html()); 184 console.log('ì ë ¥ ë°ì¤ ë´ì© TEXT : ', $(changedNode).text()); 185 //}); 186 */ 187 188 //------------------------------------------- 189 // ê´ê³ ì½ì ì© 190 // ê²ìê¸ì´ ì¼ì ì«ìê° ëë©´ ê´ê³ ìì íëì© ë£ì´ 주기. 191 //------------------------------------------- 192 //var chkAdUsed = "<?=$GLOBALS[conf][AD_SET][used]?>"; 193 if( chkAdUsed == true) { 194 // íì´ì§ê° ë¡ë©ì´ ëë©´ íì íì´ì§ ì´ë¦ íì¸í´ì ê´ê³ ë³´ì¬ì£¼ê¸° ì¤ì 195 // - íì¬ë ì¤ë(today), ì´ë²¤í¸(event), ìë¡ì°(yellow)ìë§ ì¬ì© 196 var ThisPageName = $("div[body]").attr('href'); 197 //console.log('ThisPageName:', ThisPageName); 198 199 var ContentBoxDiv = $(changedNode).find('div[post][data_id]'); 200 let ListCnt = 0; 201 ContentBoxDiv.each(function(index, element) { 202 ListCnt ++; 203 //console.log("div [page] :", $(this).attr('data_id'), 'ì¹´ì´í° :', ListCnt, 'ë머ì§ê° :', (ListCnt % 3)); 204 if( (ListCnt % AdCountIsInt) == 0 ) { 205 //console.log("div [page] ê´ê³ ì½ì :", ListCnt); 206 //console.log("div [page] adListBox 찾기 :", $(this).find('div[adListBox]').length); 207 // ìëì§ ì¬ë¶ íì¸ í ì¶ê° 208 if( $(this).find('div[adListBox]').length == 0 ) { 209 var addAD = "<div style='width:calc(100vw - 0px);height:20px;background-color:#f5f5f5;margin-top:-10px;margin-left:-10px;border:solid 0px red;'></div><div adListBox style=\"width:calc(100vw - 1px);height:100px; border:solid 1px #fff; margin-bottom:-10px;margin-left:-10px; display: flex; vertical-align: middle;text-align:center; justify-content: center; align-items: center; background-position: center;background-repeat: no-repeat;background-size: cover; background-image: url('https://seesawmall.dreamtec.co.kr/upfiles/banner/3660695213.jpg');border:solid 1px #000;\">adbox</div>"; 210 //$(this).find('div[act]').after(addAD); 211 //$(this).after(addAD); - 무í 룹 ì¡°ì¬...ã .ã 212 } 213 } 214 }); 215 } 216 217 //------------------------------------------- 218 // ëê¸ ë²ì ê¸°ë¥ ìë ì¶ê° 219 // íê·¸ì ëí´ ìì ìí 220 //------------------------------------------- 221 CommList.each(function(index, element) {
222 // ìì±ì ì´ë¦ ê°ì ¸ì¤ê¸° 223 var WriterName = $(element).find('.name').contents().text().trim(); 224 console.log('comment íê·¸ ìì±ì ì´ë¦ WriterName:', '|'+WriterName+'|'); 225 226 // ìì ì½ë©í¸ ë´ì©ë§ ê°ì ¸ì¤ê¸° 227 var textContent = $(element).contents().filter(function() { 228 return this.nodeType === 3; // í ì¤í¸ ë ¸ëë§ íí°ë§ 229 }).text().trim(); 230 console.log('comment íê·¸ ë´ì© textContent:', '|'+textContent+'|' + textContent.length); 231 if(textContent.length < 1) { 232 textContent = $(element).contents().text().trim(); 233 //textContent = $(element).contents().html(); 234 console.log('comment íê·¸ ë´ì© 2ì°¨ textContent:', '|'+textContent+'|' + textContent.length); 235 } 236 237 // ë²ì ë´ì© ì¤ ìì±ì ì´ë¦ì ìì í기. 238 textContent = textContent.replace(WriterName, ""); 239 240 // ì¤ë³µì¼ë¡ ë±ë¡ëë ë¶ë¶ ë§ê¸° ì¤ì : í´ë¹ ììì ë²ì ë²í¼ì´ ìì ëë§ ì¤ì 241 var chkAddTrans = $(element).find('[addTrans]'); 242 console.log('comment íê·¸ ë´ì© chkAddTrans:', chkAddTrans.length); 243 if(chkAddTrans.length > 0) return ; 244 245 // - ë²ì기 ìë ì¶ê° 246 // - CommentTranPopup : ìì¤ë default.php íì¼ ì°¸ê³ 247 $(element).find('.name').css("width", "49%").css("float", "left"); 248 $(element).find('div').first().after('<div addTrans class="dropdown" style="width:49%;height:22px;float:right;text-align:right;font-size: 22px;display: flex; vertical-align: middle;justify-content: right;" ><div data-toggle="dropdown"><i class="fa-solid fa-language " aria-hidden="true" onclick="FuncLanguageChange(this)"></i></div>'+CommentTranPopup+'</div><div orgtext style="display:none;">'+textContent+'</div>'); 249 // 250 }); 251 252 //------------------------------------------- 253 // ê¸ì°ê¸° ì°½ì´ ì´ë¦¬ëì§ ê°ì§.. 254 //------------------------------------------- 255 /*var DivContentEditable = $(changedNode).find('div[contentEditable]'); 256 if(chkDivContentEditable == false) { 257 console.log("div [ContentEditable] :", DivContentEditable); 258 if(DivContentEditable.length > 0) { 259 chkDivContentEditable = true; 260 } else { 261 chkDivContentEditable = false; 262 } 263 }*/ 264 265 266 }); 267 268 }); 269 270 271 // ëì ë ¸ë를 ê°ì ëìì¼ë¡ ë±ë¡í©ëë¤. 272 if(targetNode) { 273 observer.observe(targetNode, observerOptions); 274 } else { 275 targetNode = $('.comment')[0]; 276 try { 277 //console.log('ë³ê²½ ê°ì§: ì¤í'); 278 observer.observe(targetNode, observerOptions); 279 } catch { } 280 } 281 282 //----------------------------------------------- 283 // ë¶ì¬ ë£ê¸° ì´ë²¤í¸ ê°ì§ 284 //----------------------------------------------- 285 var chkHttpLinkEvent = ""; 286 var chkHttpLinkVal = ""; 287 $("div").on("paste", "[contentEditable]", function(event) { 288 var pastedData = event.originalEvent.clipboardData.getData('text'); 289 if(pastedData.toLowerCase().indexOf('http') >= 0) { 290 chkHttpLinkEvent = "true"; 291 chkHttpLinkVal = pastedData; 292 setTimeout(function() { 293 // ì ë ¥ ë°ì¤ì ê°ì íì¸ í´ì ê°ì§ ì¬ë¶ 294 let InTxt = $('div [contenteditable]').text(); 295 296 if( InTxt.indexOf(pastedData) < 0) { 297 // ë§í¬ê° ìì ë ì¶ê° ì ë ¥ ì²ë¦¬ 298 var $div = jQuery('div [contenteditable]'); 299 var caretPos = $div[0].selectionStart; 300 var textAreaTxt = $div.html(); 301 var txtToAdd = pastedData; 302 //$div.html(textAreaTxt.substring(0, caretPos) + txtToAdd + textAreaTxt.substring(caretPos)); 303 $div.html(textAreaTxt.substring(0, caretPos) + txtToAdd); 304 } else { 305 console.log("ì ë ¥ì°½ì í ì¤í¸ ì¤ ë§í¬ ê°ì íì¸ : ë§í¬ê° ìì"); 306 } 307 308 }, 1500); 309 } else { 310 chkHttpLinkEvent = ""; 311 chkHttpLinkVal = ""; 312 } 313 }); 314 315 316 var todayDiv = $('div[href="#today"]'); 317 todayDiv.prependTo(todayDiv.parent()); 318}); 319 320// ëì ì¼ë¡ ì¶ê°ë ììì ëí í´ë¦ ì´ë²¤í¸ 리ì¤ë 321$('.comment').on('click', '.languageChange', function() { 322 console.log('ëì ì¼ë¡ ì¶ê°ë div를 í´ë¦íìµëë¤.'); 323}); 324// ëê¸ ì í í목 ì¤ì ê° 325var selectCommentThis = null; // í´ë¦ë Obj ê° 326var selectCommentTxt = ""; // ë²ì ë´ì© 327function FuncLanguageChange(xthis) { 328 console.log('ë²ì기 íì ì´ê¸° í¨ì', xthis); 329 330 selectCommentThis = xthis; 331
332 // ìì±ì ì´ë¦ ê°ì ¸ì¤ê¸° 333 var WriterName = $(xthis).closest('div[addTrans]').prev().html();//$(xthis).prev().html(); 334 console.log('WriterName ê° ì°¸ê¸° :', $(xthis).closest('div[addTrans]').next().text().trim()); 335 336 // ëê¸ ID 337 var groupValue = $(xthis).closest('div[group]').attr('group'); 338 let CommentID = groupValue; 339 // ëê¸ ë´ì© 340 var txtValue = $(xthis).closest('div[comment]').contents().filter(function() { 341 return this.nodeType === 3; // í ì¤í¸ ë ¸ëë§ íí°ë§ 342 }).text().trim(); 343 console.log('WriterName ê°:', WriterName, 'txtValue ê°:', txtValue); 344 if(txtValue.length < 1) { 345 txtValue = $(xthis).closest('div[comment]').children("div[commentHtml]").html(); 346 //console.log('comment íê·¸ ë´ì© 2ì°¨ txtValue:', '|'+txtValue+'|' + txtValue.length); 347 console.log('comment íê·¸ ë´ì© 2ì°¨ txtValue:', txtValue); 348 349 } 350 selectCommentTxt = txtValue; 351 352 // ë²ì í¸ì¶ 353 //var PostData = {"LenSource" : "","LenTarget" : "en", "strContent": txtValue}; 354 //FuncCommentAJaxPost(xthis, PostData, txtValue, FuncCommentError); 355 356 return ; 357 358 // - ì기 ë³ê²½ í ì¤í¸ 359 //$(xthis).closest('div[comment]').contents().replace(txtValue, "ë°ë³´~~"); 360 let oldHtml = $(xthis).closest('div[comment]').html(); 361 let newHtml = oldHtml.replace(new RegExp('' + FuncEscapeHtml(txtValue) + '', 'g'), "ë°ë³´~~"); 362 $(xthis).closest('div[comment]').html(newHtml); 363 console.log(newHtml); 364} 365// - HTML ìí°í°ë¡ ë³í ì²ë¦¬ í¨ì 366function FuncEscapeHtml(str) { 367 var div = document.createElement('div'); 368 div.appendChild(document.createTextNode(str)); 369 return div.innerHTML; 370} 371 372function FuncCommentTrans(LenSource, LenTarget) { 373 if(LenSource == "reset") { 374 let oldHtml = $(selectCommentThis).closest('div[comment]').html(); 375 let orgText = $(selectCommentThis).closest('div[comment] div[orgtext]').html(); 376 let newHtml = oldHtml.replace(new RegExp('' + FuncEscapeHtml(selectCommentTxt) + '', 'g'), orgText); 377 //console.log("리ì í기 > oldHtml ", oldHtml); 378 //console.log("리ì í기 > orgText ", orgText); 379 //console.log("리ì í기 > newHtml ", newHtml); 380 //$(selectCommentThis).closest('div[comment]').html(newHtml); 381 } else { 382 console.log("strContent :", selectCommentTxt); 383 var PostData = {"LenSource" : "","LenTarget" : LenTarget, "strContent": selectCommentTxt}; 384 console.log("PostData :", PostData); 385 FuncCommentAJaxPost(selectCommentThis, PostData, selectCommentTxt, FuncCommentError); 386 } 387} 388 389 390//----------------------------------------- 391// ëª¨ë¸ ë±ë¡ ì¬ì© ì¼ ê²½ì° ìë¨ ì±ë 리ì¤í¸ ë³ê²½ 392//----------------------------------------- 393$(window).on('hashchange', function() { 394 setTimeout(function() { 395 var chnElement = $('div[contentEditable]'); 396 if (chnElement.length > 0) { 397 console.log('chn ìì±ì´ ìë <div> ììê° ììµëë¤.'); 398 399 //$('div[story]').filter(function() { 400 // return $(this).find('button.act[badge_pen]').length > 0; 401 //}).remove(); 402 403 } else { 404 console.log('chn ìì±ì´ ìë <div> ììê° ììµëë¤.'); 405 } 406 }, 300); 407});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.