숨김처리한 항목이 소스보기에서 노출이 됩니다

숨김처리한 항목이 소스보기에서 노출이 됩니다

QA

숨김처리한 항목이 소스보기에서 노출이 됩니다

본문

아래와 같이 게시글을작성하면 게시글 내용 중 일부만 숨김처리하도록 했습니다.

해당 게시글에 댓글을 작성하면 숨김이 해제되고요.

 

댓글 달기 전에도 보이는 내용

[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() 를 사용해여 특정조건시 해당 오브젝트를 삭제하세요.

 

예제 및 설명

https://www.codingfactory.net/10268

원하시는것처럼 

이벤트 (클릭/드래그)등에 의해서 보이기, 혹은 감추기를 원하는데

감춘내용들이 소스보기에서는 안나오게 하고싶으신경우는

 

비동기프로그래밍을 처리하셔야 하는데

우선 간단한 방법으로는 ajax로 해당 로직을 가져오던지 값을가져와서 보이게 영역에 표시를하시면되는데

ajax 보다 조금더 최근의 트랜드에서는 react.js 혹으 vue.js 등을 이용해서 처리하는 비동기 처리를 습득하셔서 처리하시는게 좋겠습니다.

 

그누보드에서 글쓰기(저장)전에 ajax는 validation처리에서 활용되도록 하는 샘플이 있습니다.

 

wrtie.skin.php 파일에서 fwrite_submit() 함수에서

$.ajax(......

로 시작하는 내용을 참고하셔도 됩니다만

 

비동기를 개념적으로 이해하신후에 참고하시는게 더 좋습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,621 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT