미리보기 관련 유저스크립트
미리보기 사진 위치나 크기 조정이 필요하다 생각해서 만듬 필요한 사람 쓰셈
+25/07/28 19:53분 수정 게시글 클릭시 미리보기 이미지 남아있는 문제 해결
// ==UserScript==
// @name 코네 미리보기 조정
// @namespace http://tampermonkey.net/
// @version 1.1
// @description kone.gg 미리보기 복제 방식으로 위치와 크기 자유 조정 + 게시글 밖 잘림 방지 + 원본 숨김 처리 포함 + SPA 대응
// @author cloud67p
// @match https://kone.gg/*
// @grant none
// @run-at document-idle
// ==/UserScript==
(function () {
'use strict';
let activePreview = null;
let hiddenOriginal = null;
let currentUrl = window.location.href;
// 미리보기 정리 함수
function cleanupPreview() {
if (activePreview) {
activePreview.remove();
activePreview = null;
}
if (hiddenOriginal) {
hiddenOriginal.style.display = '';
hiddenOriginal = null;
}
}
// URL 변경 감지 (SPA 대응)
function detectUrlChange() {
const newUrl = window.location.href;
if (newUrl !== currentUrl) {
currentUrl = newUrl;
cleanupPreview();
}
}
// URL 변경 감지를 위한 이벤트 리스너들
window.addEventListener('popstate', cleanupPreview);
// pushState, replaceState 감지 (SPA 라우팅)
const originalPushState = history.pushState;
const originalReplaceState = history.replaceState;
history.pushState = function() {
originalPushState.apply(history, arguments);
cleanupPreview();
};
history.replaceState = function() {
originalReplaceState.apply(history, arguments);
cleanupPreview();
};
// 주기적으로 URL 변경 체크 (추가 안전장치)
setInterval(detectUrlChange, 100);
// 클릭 이벤트 감지 (게시글 링크 클릭 등)
document.addEventListener('click', (e) => {
// 링크나 버튼 클릭 시 미리보기 정리
if (e.target.closest('a') || e.target.closest('button') || e.target.closest('[role="button"]')) {
cleanupPreview();
}
}, true);
// 키보드 이벤트 감지 (ESC 키 등)
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
cleanupPreview();
}
});
// 기존 마우스오버 이벤트
document.addEventListener('mouseover', (e) => {
const postWrapper = e.target.closest('.group\\/post-wrapper');
if (!postWrapper) return;
const preview = postWrapper.querySelector('.group-hover\\/post-wrapper\\:block');
if (!preview) return;
// 기존 미리보기 정리
cleanupPreview();
// 원본 숨김
preview.style.display = 'none';
hiddenOriginal = preview;
// 복제본 생성
const clone = preview.cloneNode(true);
const rect = postWrapper.getBoundingClientRect();
clone.style.position = 'fixed';
clone.style.left = '40rem';
clone.style.top = `${rect.top - 200}px`;
clone.style.zIndex = '9999';
clone.style.pointerEvents = 'none';
clone.style.display = 'block';
const img = clone.querySelector('img');
if (img) {
img.className = '';
img.style.width = 'auto';
img.style.height = 'auto';
img.style.maxWidth = '720px';
img.style.maxHeight = '720px';
img.style.objectFit = 'contain';
img.style.display = 'block';
}
document.body.appendChild(clone);
activePreview = clone;
});
// 기존 마우스아웃 이벤트
document.addEventListener('mouseout', (e) => {
const postWrapper = e.target.closest('.group\\/post-wrapper');
const related = e.relatedTarget?.closest?.('.group\\/post-wrapper');
if (postWrapper && related !== postWrapper) {
cleanupPreview();
}
});
// 페이지 언로드 시 정리
window.addEventListener('beforeunload', cleanupPreview);
// 페이지 숨김 시 정리 (탭 전환 등)
document.addEventListener('visibilitychange', () => {
if (document.hidden) {
cleanupPreview();
}
});
})(); 3
1 comment
cloud67p
07/28/25 Edited 07/28/251. 미리보기가 게시글 제목을 가림 -> 위치를 더 오른쪽으로 보냄
2. 미리보기 더 크게 보고싶은데 단순히 크기 조정시 -> 게시글 박스를 넘어가면 짤림 -> 새로 복제함
3. 크기 더 크게 만드니 맨 아래 게시글의 미리보기는 하단부가 짤림 -> 미리보기들을 전부 위로 좀 더 올림
4.(수정추가) 미리보기 이미지 게시글 이동시에도 남아있는 오류 수정
공지
AI 이미지 관련 공지 및 관련 규정 수정 공지
1uF
05/02
65118
22
AI 이미지 관련 공지 및 관련 규정 수정 공지
공지
1uF
05/02 65118 22
공지
‼️뉴비 필독 가이드‼️
1uF
05/02
95078
134
‼️뉴비 필독 가이드‼️
공지
1uF
05/02 95078 134
공지
🔔[필독] 채널 규정 & 신문고 (2026 04 05~)
SK
04/05
208359
-25
🔔[필독] 채널 규정 & 신문고 (2026 04 05~)
공지
SK
04/05 208359 -25
공지
🔔[필독] 탭 별 이용 가이드 (20260206~)
Etrick
02/05
257220
-41
🔔[필독] 탭 별 이용 가이드 (20260206~)
공지
Etrick
02/05 257220 -41
공지
[필독] 서브에 자주 올라오는 여러 가지 질문 모음 (20251026~)
SK
05/17/25
1245499
-14
[필독] 서브에 자주 올라오는 여러 가지 질문 모음 (20251026~)
공지
SK
05/17/25 1245499 -14
s/somisoft
• 143,985 subscribers여러가지 다루는 서브
Created 05/17/2025, 14:58:43