kone
소미소프트

소미소프트

미리보기 관련 유저스크립트

07/28/2025, 04:59:26
유틸
2710 views · 3 likes

미리보기 사진 위치나 크기 조정이 필요하다 생각해서 만듬 필요한 사람 쓰셈

+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
07/28/25 Edited 07/28/25
1. 미리보기가 게시글 제목을 가림 -> 위치를 더 오른쪽으로 보냄 2. 미리보기 더 크게 보고싶은데 단순히 크기 조정시 -> 게시글 박스를 넘어가면 짤림 -> 새로 복제함 3. 크기 더 크게 만드니 맨 아래 게시글의 미리보기는 하단부가 짤림 -> 미리보기들을 전부 위로 좀 더 올림 4.(수정추가) 미리보기 이미지 게시글 이동시에도 남아있는 오류 수정
[자체한글] GGG 군군구너~!!
번역
미스터장
05/11 45300 177
ai) 블아 얼굴만 이쁜년
야짤
Ghost
05/11 9492 44
【속삭임 특화♡ 전편 발정 숨결 계속 불어대기】다우너 JK 육상부원의 고밀착 W 냄새 킁킁〜 들끓는 발정 땀범벅 에로 성생활♡
소리
테탑시
05/11 19566 105
[MMD] 000 Youtube
영상
linkmiyu
05/11 17980 74
[AI번역/riboshika][NTR] 우리 누나는 세상에서 제일 강하고 멋있어
동인
gaymaster
05/11 55225 183
[미번][번역요청] RJ01593624 ○リマゾをプレイしていたら異世界転移していた件について
미번
HHD777
05/11 14015 30
AI, 셀레스포니아) 데이트편? 미완임
야짤
miso5
05/11 15345 44
[미번/구매보급/NTR/번역요청] RJ01611372 요요와 유두한 왕자님계 그녀는 금방 NTR 할 수 있어!?
미번
륄트
05/11 10857 46
[구매보급](공식한글)페른 나옴
shiki
05/11 38071 70
[Liyoosa] 도련님에게 사지가 구속된 채 무기력하게 조교당하는 메이드 6p
동인
요요코코
05/11 38123 187
[ai번역]페르소나 하렘 시리즈+누나와의 러브러브 생활 첫 경험은 하렘으로
동인
mybest
05/11 28033 67
(요청복구) 백작 저택의 사건부 -교착하는 두 가지의 속마음-(제품판)
복구
sinryeong
05/11 24371 92
[미번 복구] Prison / RJ01608199
미번
akdbakdb
05/11 14297 40
[요청복구] 님포마니아 프리스트(Nymphomania pristess) 한국어 번역판 12월버젼
복구
qwert1340
05/11 28905 114
비타퀘2 업스케일링 이미지 꺠짐 파일 교체
복구
sinbiru
05/11 24675 50
요청복구) RJ181079 공주기사 로즈 자체개조판
복구
ajrnflxhdqkf
05/11 15752 26
[AI번역+검수+일부 이미지] RJ01596985 루나와 음욕의 트랩 던전 v1.0.1 (패치파일만)
번역
aquapre
05/11 33416 155
[요청복구] RJ184333 창녀 의상을 입은 소녀~자궁까지 바치는 매춘 RPG~
복구
Bluebird
05/11 22104 45
[AI][검수] RJ01187378 그 여름 ~미캉의 여름방학~ ver1.1.2 (26.04.10) 스팀노모 수정2
번역
gsup7777
05/11 65871 290
esuke 노모 안나선배 3편
동인
posan
05/11 17020 66
(촉수, 번역, 노모, 복구) 절대로 지지 않아 히어로 짱들 VS 절대로 보내겠어 울끈불끈 촉수
rt1442399
05/11 26504 36
[ai번역,이미지 번역] RJ01500551 오나쿠라 메이드 라이프 ~같은 반의 갸루 메이드와 리조트 봉사 생활~ v3 25.12.20
번역
lavia
05/11 115798 589
jury 닿고 싶어서1,2
동인
SK
05/11 20081 141
[미번/버전업/알림]사막 왕국과 노예 사냥 V3.1.1 (26.05.11)
미번
밤꽃향기 그윽한 어느 여름날..
05/11 5372 15
[Liyoosa]Close your eyes
동인
요요코코
05/11 27505 119
언젠가 만들어질 야겜 개발
창작
2002pipe
05/11 12204 50
[구매보급][한국어 자막판] [형벌 집행]!!건방진 로○ 암컷 꼬맹이 쌍둥이를 완전 굴복 조교!!
소리
이름뭐하지
05/11 16039 112
직번) [hirari] 썸원 헤르츠 ntr
동인
이니스프리맛있어
05/11 23474 52
ai번역 renbocloud 마리편
동인
myojh3
05/11 18930 43
[구매보급] [버전업] RJ01414102 이상한 형무소와 음욕의 지하 미궁 ~빈틈투성이인 나나의 H한 프리즌 브레이크~ 1.1.0
미번
gkqisq
05/11 24882 51