그누보드5에 간단하게 태그 기능 추가하기 > 코딩 스토리

그누보드5에 간단하게 태그 기능 추가하기

본문

기존 그누보드의 검색 기능을 이용한 편법적인 태그입니다.


즉 그냥 태그한 키워드에 자동으로 해당 키워드 검색한 내용 링크를 걸어주는 방식이죠.


이 코드를 tail.sub.php 또는 head.sub.php에 넣으시면 됩니다.


[code]

<script>

document.addEventListener('DOMContentLoaded', function() {

  // 페이지의 HTML 코드에서 #아이디 를 찾는 정규식
  var regex = /#([\w가-힣]+)/g;

  // HTML 문서의 모든 텍스트 노드를 순회하며 #아이디 를 찾아 수정
  var textNodesIterator = document.evaluate(
    "//text()",
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null
  );

  for (var i = 0; i < textNodesIterator.snapshotLength; i++) {
    var textNode = textNodesIterator.snapshotItem(i);
    var originalText = textNode.nodeValue;
    var modifiedText = originalText.replace(regex, function(match, title) {
      // 태그 안에 있는 경우에는 링크 생성하지 않음
      if (textNode.parentNode.tagName.toLowerCase() === 'a' || textNode.parentNode.tagName.toLowerCase() === 'style' || textNode.parentNode.tagName.toLowerCase() === 'id') {
        return match;
      } else {
        var searchUrl = 'http://' + window.location.host + '/bbs/search.php?sfl=wr_subject%7C%7Cwr_content%7C%7Cmb_id%7C%7Cwr_name%7C%7Cwr_datetime%7C%7Cwr_last%7C%7Cwr_ip&sop=and&stx=' + encodeURIComponent(title);
        return '<a href="' + searchUrl + '" class="search_tag" style="text-decoration-line: none;color:#ee8438;">#' + title + '</a>';
      }
    });

    if (modifiedText !== originalText) {
      var newNode = document.createElement('span');
      newNode.innerHTML = modifiedText;
      textNode.parentNode.replaceChild(newNode, textNode);
    }
  }
});
</script>
[/code]
좋아요69 이 글을 좋아요하셨습니다
url 복사 카카오톡 공유 라인 공유 페이스북 공유 트위터 공유

카테고리 분류 학습 시스템 (총 0개 학습됨)

예측 카테고리: 교육-입시 (랜덤 - 학습 데이터 없음)

이 분류가 맞나요? 학습시켜주세요!

tak2님의 댓글

tak2쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (112.♡.248.125) 작성일
😶
❤️
😂
😅
😮
😡
🥵
  • RSS
  • _  글쓰기 글쓰기
전체 302건
게시물 검색

접속자집계

오늘
1,604
어제
3,897
최대
42,418
전체
939,832