kone
소미소프트

소미소프트

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

07/28/2025, 04:59:26
유틸
2520 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.(수정추가) 미리보기 이미지 게시글 이동시에도 남아있는 오류 수정
[미번/번역요청]You・are・mine
동인
아돌
04/21 21769 30
[요청복구] 2게
복구
Ghost
04/21 37069 42
90일, +미번) RJ01063592 [えいじゅいむ]지배 후배 전승무패 얼리억세스 6월-번역.zip
복구
ㅇㅇ
04/21 24158 64
(노모) [Momokumo] 멈춰버린 상자 속에서
동인
04/21 34618 204
[구매보급] HENTAI RABBIT HOOD 변태토끼두건 2026-04-21
미번
finlike2950
04/21 24758 46
[요청복구] 아야코씨의 분주
복구
rubberduck
04/21 20603 60
[한글자막] 섹스페디션 0~2화 ~멸망한 인류 대신, 개에게 충성을~
영상
실루엣21
04/21 38185 222
[AI번역][미검수]Komadori Inn, Barely Working
번역
솔라셀
04/21 41589 153
[구매보급]문무양도인 검도 아가씨는 오늘도 당신에게 엉덩이를 맞으며 음란하게 조교중♪
소리
이름뭐하지
04/21 15825 70
[Ai 후원] 걸판 타케베 사오리 편의점 [366p]
야짤
Ghost
04/21 5228 21
AI) 무표정금발JK와 기승위
야짤
miso5
04/21 13098 61
[Ai 후원] 첫갸루 야메 유카나 [398p]
야짤
Ghost
04/21 10882 22
오늘은 무슨 게임을 해보지? "횡스크롤" 게임편
정보
kkkkkk0909
04/21 24918 65
[Ai 후원] 뱅드림 야마부키 사아야 [343p]
야짤
Ghost
04/21 12389 22
AI) 무표정 금발 트윈테일 전철 섹스
야짤
miso5
04/21 13295 143
보추) 학창시절 나를 괴롭혔던 양아치가 부하로 입사한 건 에필로그
야짤
츠바키미유
04/21 19792 35
[Ai 후원] 건담 빌드 카미키 미라이 [치어리더 354p]
야짤
Ghost
04/20 14667 23
AI [미번/번역요청] [AImalin] 고결한 하프 엘프 에〇리아가 변방의 농민 할아버지에게 속아 신부로 전락한다
동인
lcorpse
04/20 25557 35
[Ai 후원] 신데마스 닛타미나미 [웨이트리스 300p]
야짤
Ghost
04/20 5219 19
[Ai 후원] 금서 쇼쿠호 미사키 [앨리스 코스 332p]
야짤
Ghost
04/20 13858 20
[Ai 후원] 소아온 키리가야 스구하 [335p]
야짤
Ghost
04/20 15840 21
[Ai 후원] 스트 더 블러드 아사기 아이바 [368p]
야짤
Ghost
04/20 11923 19
[구매보급]저택에 잠입한 거유쿠노이치를 붙잡았더니... 전력으로 목숨을 구걸하는 아양교미
소리
이름뭐하지
04/20 22602 79
[방주 털이 알림] 방주 털이 복구 리뉴얼 예정임
야짤
ㅇㅇ
04/20 17021 52
효광 2 (스타레일)
영상
브레머튼
04/20 37366 93
[Ai 구매보급] 거유가 출렁출렁 흔들려! JO바니걸 210명과 땀범벅으로 난교 질내사정 야스
영상
Ghost
04/20 39975 174
구매보급) RJ01474265, RJ01492373, RJ01486896
소리
IIIIIIIlllllllIIIIII
04/20 31953 66
보추) 계속 마마가 될게요!
동인
요요코코
04/20 27316 51
[요청없이복구] 자지 여고생 청소 당번~역겨워하면서 한심하게 임신 중 사정~
소리
spacium
04/20 23684 47
[ 예고/체험판/신서클]게임 4개
정보
잉여로운인간의생활
04/20 21424 31