읽은 글 회색으로 표기 > 그누보드5 팁자료실

그누보드5 팁자료실

읽은 글 회색으로 표기 정보

읽은 글 회색으로 표기

본문

bbs/list.php 최하단부에 다음 소스를 넣어보세요. 

 

 


<script>
// 쿠키 설정 함수
function setCookie(name, value, days) {
  var expires = "";
  if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days*24*60*60*1000));
    expires = "; expires=" + date.toUTCString();
  }
  document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
// 쿠키 읽기 함수
function getCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for (var i = 0; i < ca.length; i++) {
    var c = ca[i].trim();
    if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);
  }
  return null;
}
// 게시글 링크 클릭시 호출되어 쿠키에 방문 글 ID를 저장하는 함수
function markVisitedArticle(link) {
  // 예시: URL에 "wr_id" 파라미터가 있다고 가정
  var url = new URL(link.href);
  var wr_id = url.searchParams.get('wr_id');
  if (wr_id) {
    var visited = getCookie("visitedPosts");
    var visitedArr = visited ? visited.split(',') : [];
    if (visitedArr.indexOf(wr_id) === -1) {
      visitedArr.push(wr_id);
      setCookie("visitedPosts", visitedArr.join(','), 30); // 30일간 저장
    }
  }
}
document.addEventListener('DOMContentLoaded', function(){
  // 리스트 내의 게시글 링크 선택 (적절한 셀렉터 사용)
  var links = document.querySelectorAll('.list-board .list-body .wr-subject > a');
  
  // 링크 클릭 시 방문 처리
  links.forEach(function(link) {
    link.addEventListener('click', function(){
      markVisitedArticle(link);
    });
  });
  
  // 페이지 로드시 쿠키에 저장된 방문 글 ID에 대해 스타일 적용
  var visited = getCookie("visitedPosts");
  if (visited) {
    var visitedArr = visited.split(',');
    links.forEach(function(link){
      var url = new URL(link.href);
      var wr_id = url.searchParams.get('wr_id');
      if (wr_id && visitedArr.indexOf(wr_id) !== -1) {
        // 방문한 게시글에 대한 스타일 지정
        link.style.color = "#9b9ea5";
        link.style.textDecoration = "none";
      }
    });
  }
});
</script>

 

 

추천
4
  • 복사

댓글 4개

© SIRSOFT
현재 페이지 제일 처음으로