그누보드5 태그기능 업데이트 > 코딩 스토리

그누보드5 태그기능 업데이트

본문

[code]
<script>

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

    var regex = /(?<!\S)#([\w가-힣]+)/g; // 앞에 공백이 없을 때만 매치하도록 수정

    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]

기존 문제였던 링크에 포함된#뒤의텍스트를 태그처리하는 문제를 해결했습니다.


다만 아직 오류가 일부 남아있는데요, 그누보드에서 에디터를 사용하고 계신다면 아주 큰 문제일 듯 합니다. Twave 베타 배포글을 수정하는데 왜 자꾸 작성한 내용을 수정하려고 하면 수정 페이지에서 내용이 안보이는지 이유를 조사한 결과 이놈 때문이었습니다.

좋아요72 이 글을 좋아요하셨습니다
url 복사 카카오톡 공유 라인 공유 페이스북 공유 트위터 공유

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

예측 카테고리: 경제-금융 (랜덤 - 학습 데이터 없음)

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

tak2님의 댓글

tak2쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

오류 원인을 더욱 상세하게 파악했습니다.
우선 이 태그기능 뿐만아니라 비슷한 방식으로 작동하는 Twave 테마의 멘션 기능에도 같은 오류가 발생했는데요, 바로 댓글 수정 시 만약 태그나 멘션이 포함되어 있을 경우 수정 시 텍스트가 사라지는 오류입니다. 아마도 그누보드 특성의 문제인 것 같습니다.
예를 들어 그누보드의 게시판 댓글 만을 본다면, 댓글은 출력부와 수정 부분 두가지로 나뉘어지게 됩니다. 근데 수정부분의 태그, 멘션 텍스트 조차 링크로 처리해버리니 수정할 때 아에 보이지 않게 된 것 입니다.
우선 저는 댓글 수정 textarea에 class를 하나 추가하고 해당 클래쓰는 재외하는 방식으로 해결했습니다.
오류를 수정한 코드와 방법은 추후 게시하겠습니다

😶
❤️
😂
😅
😮
😡
🥵

tak2님의 댓글

tak2쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

textarea의 @텍스트#텍스트는 처리하지 않도록 수정하여 문제를 해결했습니다.

😶
❤️
😂
😅
😮
😡
🥵
  • RSS
  • _  글쓰기 글쓰기
전체 302건
게시물 검색

접속자집계

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