게시판 링크를 붙이면 웹에서 게시판 제목 으로 나오게 하기 검색
작성자 정보
- 최고관리자 작성
- 192.♡.0.1 아이피
- 작성일
컨텐츠 정보
- 5,447 조회
- 목록
링크
첨부
본문
작업 정리
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 게시글 상단에 적용하면 됩니다.
카톡 표시

네이버 계시글
첨부 파일을 스킨보드에 구성 PDF보기( W:\g5\skin\board\BS4-Basic-Webzine_11q_pdf_php82\view.skin.php + view_pdf.php구성)
관련자료
-
링크
-
이전
-
다음
댓글 0
등록된 댓글이 없습니다.