숨김처리한 항목이 소스보기에서 노출이 됩니다
본문
아래와 같이 게시글을작성하면 게시글 내용 중 일부만 숨김처리하도록 했습니다.
해당 게시글에 댓글을 작성하면 숨김이 해제되고요.
댓글 달기 전에도 보이는 내용
[hide]댓글 달기 전에는 숨길 내용[/hide]
작동은 잘 하긴 하는데, 소스보기에서 보면 숨길 내용이 그대로 노출되네요.
소스보기에서도 숨길 수 있는 방법이 있을까요?
도움 부탁드립니다.
코드는 아래와 같습니다.
<script>
<?php
if ($is_admin || $write['mb_id'] == $member['mb_id'] || $comment_member['cnt']) {
echo "bo_v_con.innerHTML = bo_v_con.innerHTML.replace(/\[hide\]/gi, '').replace(/\[\/hide\]/gi, '');";
}
else {
echo "
bo_v_con.innerHTML = bo_v_con.innerHTML.replace(/\<div/gi, '\<p').replace(/\<\/div\>/gi, '</p>');
bo_v_con.innerHTML = bo_v_con.innerHTML.replace(/\[hide\]/gi, '<div class=hide>').replace(/\[\/hide\]/gi, '</div>');
bo_v_con.innerHTML = bo_v_con.innerHTML.replace(/\<p/gi, '\<div').replace(/\<\/p\>/gi, '</div>');
hideDiv = document.getElementsByClassName('hide');
for (vhd = 0; vhd < hideDiv.length; vhd++) hideDiv[vhd].innerHTML = '댓글작성 후 열람가능';
";
}
?>
</script>
답변 3
hide 는 단지 display:none 정도의 역할이니 당연히 소스 보기시 보일수 밖에요
hide 클래스 지정하지마시고 .remove() 를 사용해여 특정조건시 해당 오브젝트를 삭제하세요.
예제 및 설명
원하시는것처럼
이벤트 (클릭/드래그)등에 의해서 보이기, 혹은 감추기를 원하는데
감춘내용들이 소스보기에서는 안나오게 하고싶으신경우는
비동기프로그래밍을 처리하셔야 하는데
우선 간단한 방법으로는 ajax로 해당 로직을 가져오던지 값을가져와서 보이게 영역에 표시를하시면되는데
ajax 보다 조금더 최근의 트랜드에서는 react.js 혹으 vue.js 등을 이용해서 처리하는 비동기 처리를 습득하셔서 처리하시는게 좋겠습니다.
그누보드에서 글쓰기(저장)전에 ajax는 validation처리에서 활용되도록 하는 샘플이 있습니다.
wrtie.skin.php 파일에서 fwrite_submit() 함수에서
$.ajax(......
로 시작하는 내용을 참고하셔도 됩니다만
비동기를 개념적으로 이해하신후에 참고하시는게 더 좋습니다.
소스보기 했을때 안보여주고 싶으시면 ajax 등을 이용해서 실시간으로 정보를 가지고 오셔야 할거 같습니다.