코딩게시판

게시판 링크를 붙이면 웹에서   게시판 제목 으로 나오게 하기 검색

작성자 정보

  • 최고관리자 작성
  • 192.♡.0.1 아이피
  • 작성일

컨텐츠 정보


  • 링크

  • 첨부


  • 본문

    작업 정리
     
    1. 제목
    그누보드 게시글 링크 복사 시 비공개 게시글 제목 미노출 및 링크 깨짐 문제 해결

    2. 문제점
    비공개 게시글 주소+제목 복사 시 제목이 나오지 않음

    기존 JS에서 innerText 사용 → 일부 비공개 게시글에서 제목 미노출

    innerText가 HTML 구조나 스킨 클래스에 따라 제목을 정상적으로 가져오지 못함

    링크 깨짐 / 오류 안내 페이지 연결

    복사된 URL이 일부 브라우저에서 "htt s://WWW.11"처럼 깨짐

    .zip 등 파일명이나 하이픈/점이 있는 제목이 일부 변형되어 붙여넣기 시 깨짐

    팝업(alert) 미노출 / 복사 실패

    기존 urlDiv.innerHTML을 수정하는 방식 → 버튼 DOM이 잠시 제거됨

    document.execCommand("copy")가 정상 작동하지 않음

    버튼 간격/레이아웃 불일치

    기존 단일 버튼과 새 2개 버튼 flex 구조 차이

    hr 마진, padding, line-height 차이로 시각적 간격 다름

    3. 대응 및 변경 내용
    문제  대응 방법   변경 내용
    제목 미노출  innerText → textContent 변경  게시글 제목 특수문자, HTML 태그 무시하고 순수 텍스트 가져오기
    링크 깨짐   임시 textarea 사용 후 복사 복사용 textarea를 버튼 div가 아닌 body에 생성 → execCommand 안정화
    파일명 깨짐  특수문자 그대로 유지 .zip, 하이픈, 점 등 변형 없이 그대로 복사
    팝업 미노출  DOM 구조 분리   버튼 DOM 유지, 복사 후 textarea 제거 → alert 정상 표시
    버튼 간격 불일치   CSS flex + gap + margin 통일  버튼 높이, padding, hover 색상 조정, hr margin 통일
    4. 최종 구성 내용
    4.1 버튼 구조
    <div id="urlDiv" style="display:flex; gap:10px; margin-bottom:10px;">
        <button onclick="urlCopy()">주소복사</button>
        <button onclick="urlTitleCopy()">주소+제목복사</button>
    </div>

    4.2 JS 함수
    // 주소만 복사
    function urlCopy() {
        const temp = document.createElement("textarea");
        temp.value = window.location.href;
        document.body.appendChild(temp);
        temp.select();
        document.execCommand("copy");
        document.body.removeChild(temp);
        alert("주소가 복사되었습니다.");
    }

    // 주소+제목 복사
    function urlTitleCopy() {
        const postTitle = document.querySelector('.bo_v_tit, .view_subject, h1')?.textContent?.trim() || document.title || '게시글';
        const fullText = window.location.href + "\n제목: " + postTitle;

        const temp = document.createElement("textarea");
        temp.value = fullText;
        document.body.appendChild(temp);
        temp.select();
        document.execCommand("copy");
        document.body.removeChild(temp);
        alert("주소와 제목이 복사되었습니다.");
    }

    4.3 버튼 스타일
    #urlDiv button {
        padding:7px 15px;
        border:1px solid #32CD32;
        border-radius:5px;
        background:#7CFC00; /* 밝은 초록 */
        color:black;
        font-weight:bold;
        cursor:pointer;
        font-size:13px;
    }
    #urlDiv button:hover {
        background:#90EE90; /* 연두색 */
    }

    5. 특징

    주소/주소+제목 복사 기능 2개 버튼 지원

    팝업(alert) 정상 표시

    제목 내 파일명(.zip 등) 특수문자 손실 없이 복사

    flex 구조로 버튼 가로 배치, gap 통일

    비공개 게시글도 제목 포함 복사 가능

    기존 그누보드 스킨과 충돌 최소화

    원하시면 제가 이 내용을 그누보드 view.skin.php 상단에 바로 붙일 수 있는 완전 통합 최종 소스로 만들어 드릴 수 있습니다.

    원하시나요?

    나의 말:

    <!-- 888888888888888888 2025_1016_2224_30 -->
    <!-- 게시물 상단 링크복사 버튼 -->
     <!-- 버튼 영역 -->
    <div id="urlDiv" style="display:flex; gap:10px; margin-bottom:10px;">
        <button onclick="urlCopy()">주소복사</button>
        <button onclick="urlTitleCopy()">주소+제목복사</button>
    </div>

    <script>
    // 주소만 복사
    function urlCopy() {
        const temp = document.createElement("textarea");
        temp.value = window.location.href;
        document.body.appendChild(temp);
        temp.select();
        document.execCommand("copy");
        document.body.removeChild(temp);
        alert("주소가 복사되었습니다.");
    }

    // 주소+제목 복사
    function urlTitleCopy() {
        const postTitle = document.querySelector('.bo_v_tit, .view_subject, h1')?.textContent?.trim() || document.title || '게시글';
        const fullText = window.location.href + "\n제목: " + postTitle;

        const temp = document.createElement("textarea");
        temp.value = fullText;
        document.body.appendChild(temp);
        temp.select();
        document.execCommand("copy");
        document.body.removeChild(temp);
        alert("주소와 제목이 복사되었습니다.");
    }
    </script>

    <!-- 버튼 스타일 -->
    <style>
    #urlDiv button {
        padding:7px 15px;
        border:1px solid #32CD32;
        border-radius:5px;
        background:#7CFC00;
        color:black;
        font-weight:bold;
        cursor:pointer;
        font-size:13px;
    }
    #urlDiv button:hover {
        background:#90EE90;
    }
    </style>

    <!-- 게시물 상단 링크복사 버튼 end -->

       
     <!-- 99999999999999999999999999999 -->

    최종 입니다  상이한가요 이방법이 제대로 동작입니다
    ChatGPT의 말:

    네, 올려주신 최종 소스는 지금까지 논의한 개선 사항이 모두 반영된 상태이며, 구조적으로도 안정적입니다.

    정리하면:

    1️⃣ 차이 및 특징
    항목  기존 문제   최종 소스 반영 상태
    제목 포함 복사    innerText 사용 → 일부 비공개 게시글 제목 누락 textContent 사용 → 제목, 특수문자(.zip, - 등) 그대로 복사
    주소 깨짐   location.href DOM 조작 중 깨짐   임시 textarea를 body에 append → execCommand 안정적으로 복사
    팝업(alert)   innerHTML 변경으로 버튼 DOM 사라짐 → alert 안 나옴  DOM 분리 → alert 정상 표시
    버튼 배치   단일 버튼 또는 flex 적용 없음 flex + gap 적용 → 버튼 가로 배치, 간격 일정
    스타일 기본 버튼 스타일   밝은 초록(#7CFC00) 배경, 검정 글자, hover 연두(#90EE90)
    2️⃣ 안정성

    2개 버튼 동작: [주소복사] / [주소+제목복사] 모두 정상

    복사 내용: URL과 제목 모두 특수문자 및 파일명 손상 없이 유지

    브라우저 호환: document.execCommand("copy") 방식으로 대부분 브라우저에서 안정적

    버튼 UI: flex + gap → 모든 화면에서 일정한 간격 유지

    3️⃣ 결론

    올려주신 최종 소스가 현재 상태에서 가장 안정적이고 동작이 확실한 방식입니다.

    추가적으로 달라질 필요 없이 그대로 view.skin.php 게시글 상단에 적용하면 됩니다.
     
     
     
    카톡 표시
    aab70-68f1042e27fd7-21b7eb5be716e00badf076ac1499783de95f2fe8.png
     
     
    네이버 계시글 
    aab70-68f1046c4faec-b93841bdbda720a8aa1c03ea9a177c1f4b9fa7f7.png
     

    첨부 파일을 스킨보드에 구성 PDF보기( W:\g5\skin\board\BS4-Basic-Webzine_11q_pdf_php82\view.skin.php + view_pdf.php구성)



    관련자료

    댓글 0
    등록된 댓글이 없습니다.

    최근글


    새댓글