kone
소미소프트

소미소프트

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

07/28/2025, 04:59:26
유틸
2628 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.(수정추가) 미리보기 이미지 게시글 이동시에도 남아있는 오류 수정
[복구] (RJ354108) 비타민퀘스트2 경량화(용량줄인) 업스케일링 판 (용량 대폭 할인! 48G >> 6.5G)
복구
sinbiru
05/24 21464 143
Star Knightess Aura [v1.3.3]-gemini패치4 도트 적용 오류 제보용
피드백
티아나
05/24 2926 1
SKETCHY MASSAGE 추가 업데이트 진행사항안내
정보
kkkkkk0909
05/24 7410 27
비월선행록 빗치짓 많이하고 다니면 패널티같은거 있나요
질문
anonymous512
05/24 2412 0
의술사 여기 칸 퀘스트 뭔지 아시는분?
질문
rnqhsgur0316
05/24 1825 0
[복구] 최면어플에 당한 의현 사부님 복구 영상
영상
브레머튼
05/24 18728 94
[구매보급][번역요청][버전업]RJ01521598)NAKED HIGHSCHOOL【学園生活露出RPG】
미번
냐냐퍄퍄
05/24 8345 36
이미있는 짤 노모화하려면 어떤 ai써야되나요?
질문
야겜인생
05/24 2492 1
[구매보급]추방된 현자의 성 인체 실험 ~연속 절정 어둠 마법 쾌락 연구~
소리
이름뭐하지
05/24 8731 59
와이즈 & 미야비 & 야나기
영상
브레머튼
05/24 13727 90
[복구요청] 최면어플에 당한 의현 사부님 4K
요청
갈랐다고
05/24 4007 1
구매보급) 한국어판】 처음 하는 백합 섹스
동인
GOOD
05/24 13201 52
극혐
일반
미식이네
05/24 2380 5
6 7월에 기대작 많이 나오는구나
일반
kalbin
05/24 3373 0
[요청복구?] 寅乃檻 써클 2개
복구
oo
05/24 19967 49
의술사 이거 오류난거??
일반
votmvkdlsej
05/24 1625 1
목욕탕씬이있는 여주물 찾아오
질문
siksikii
05/24 1695 0
스팀에 WAKUWAKU서클 자체가 지역락임?
질문
wtm1247
05/24 1323 0
직번[Tourendou (Tonagi Tsuyu)]원나잇으로 끝나게 하지 않아 ~소꿉친구와 재회해서 연인이 되는 이야기~
동인
woo15
05/24 22007 117
무녀 나오는 야겜 없나
질문
aemeath
05/24 1752 0
데니아 (명조)
영상
브레머튼
05/24 16117 100
[요청복구] RJ201837 알프스와 위험한 숲 (KR, 노모)
복구
vhskorea
05/24 13871 49
수간) 수간 맛있는 야겜 없나
야짤
412343
05/24 5511 7
의술사) 파트리아체 조사 수첩
질문
말랑보지
05/24 1777 0
존재감 여동생 서클 갑자기 뭔 게임 개발하곤 상관 없는 일러를 공개하고 있냐?
정보
parksynim5764
05/24 5453 -11
폼니보고쳤음
일반
fjeif2
05/24 2805 0
The dead end 이거 원래 어려움?
질문
lefrah3
05/24 2128 0
이게임 아시는분?
질문
mizy3329
05/24 3217 2
수인은 인권이 없다고
야짤
toscana
05/24 4815 10
촉수)유혈) 개인적으로 생각하는 촉수물 하이라이트
야짤
roomonfire
05/24 8946 28