kone
소미소프트

소미소프트

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

07/28/2025, 04:59:26
유틸
2699 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.(수정추가) 미리보기 이미지 게시글 이동시에도 남아있는 오류 수정
[AI번역] 복음의 아파슬(노모 이식, 전개방 동봉, 미검수) +번외편
번역
봇치
05/03 46554 273
[구매보급] [Pigtarotaro] 라이덴 쇼군의 야한 의식 (雷〇将軍のえっちな儀式)
영상
ikinokoru
05/03 41028 188
[poko●●●] 지휘관에게 비밀로 바람 원정 다이호 (指揮官にナイショの浮気遠征大鳳)
영상
ikinokoru
05/03 21386 117
[Agetama] 이얼싼쓰 좋다! 사정해라💜 -완전판- (Fate/Grand Order)
동인
ㅇㅇ
05/03 28142 125
[번역요청] マンチニールHz (ver 1.01)
미번
라이오드
05/03 8452 25
[요청복구] 고백게임 (AI번역, 후일담)
복구
dk041633
05/03 21551 61
[번역]성녀님의 숨겨진 음란함이 화근이 되다 1화
동인
마법우엉
05/03 37473 178
시니시스타2 공식 모드로 1편 주인공 모드 추가해주네
정보
semin
05/03 13903 23
[스팀] 3개의 게임이 발매일이 확정되었네요
정보
kkkkkk0909
05/03 10815 19
Maya's Mission [v0.7] 재업로드
미번
당끼뾰이
05/03 8548 42
북미-스쿨데이즈 (SCHOOLDAYS) H신(자막X) 3시간 25분
영상
Ak454647
05/03 20622 98
90일) RJ269944 Flash Cycling Ride 2 v1.30.7z
복구
ㅇㅇ
05/03 12833 34
청아)오랫만에 프메1을 했음
야짤
sweetroll
05/03 7842 18
[요청복구] 몽상과 심전의 카타라아타나토스 1.07 기번+이미지
복구
dk041633
05/03 29405 76
d2lua3R3aW4 모음집 업데이트 알림
영상
hannanas
05/03 16101 57
[기번/노모/세이브포함] IV?AV!! 1 ver.1.2.1
복구
ilillilllilil
05/03 20123 67
[미번][번역요청] 유혹 음란 마을
미번
sbsb4519
05/03 12236 67
AI, 셀레스포니아) 타락한 셀레스포니아 3
야짤
miso5
05/03 15223 86
SAO Invisible Trap vβ6 [ai번역,제미나이]
번역
pareon
05/03 56294 184
[패치만] 모두의 유방육성 아카데미 3차수정
번역
argoklarke
05/03 33054 147
90일) RJ233542 Flash camping v1.33 번역기 개선판.7z
복구
ㅇㅇ
05/03 13774 43
(재업+노모화) [gagarin kichi] 네토라레 당한 폭유금발아내 엘레나 1 후일담
동인
kason
05/03 21375 67
직번) [Anteiru] 제자의 애무에 비참하게 가버리는 수영부 선생님 (Part 1)
동인
BlackWing
05/03 23364 76
(번역)우유 생산 특이점에 붙잡힌 왕
동인
멕무
05/03 23001 86
사이클론 신작 ntr겜 Ci-en에 올라온 정보
정보
kjalar
05/03 8978 52
[구매보급 번역요청]生意気後輩と放課後Hバトル?!
미번
ridesa
05/03 12607 32
청아, AI번역) [직번] 쾌락 고문 (OKINA)
동인
rapbit
05/03 16168 53
[버전업] [미번] [구매보급] RJ01138122 다락방의 잠자는 공주 미번_1.45.2? 2026.05.02 버전
미번
gkqisq
05/03 6209 29
연휴 기념) 청아? 순애? 욕실) 야설 딸친구 3화
창작
머겅머겅
05/03 11017 17
(노모화) [gagarin kichi] 네토라레 당한 폭유소꿉친구 유부녀 아카네 후일담
동인
kason
05/03 19579 62