kone
소미소프트

소미소프트

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

07/28/2025, 04:59:26
유틸
2692 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.(수정추가) 미리보기 이미지 게시글 이동시에도 남아있는 오류 수정
[번역]후타나리와 편리한 친구
동인
마법우엉
05/13 29066 57
AI, 블루아카, 청아) 키보토스 사형수 클럽 특집
야짤
xepd5264
05/13 23048 34
Tsusauto-달밤의 흐트러진 술 ~유부녀는 만취한 남편 옆에서 동료에게 네토라레 당한다~ 전후편
동인
netorare6974
05/13 16991 54
[구매보급][번역요청] 그 즐거웠던 시골에서의 여름방학을 다시…
미번
minki
05/13 11332 31
오토코노코는 후타나리 누님에게 관리당하고 싶다 [α-AlfLayla]
동인
ㅇㅇ
05/13 14442 56
[구매보급][번역요청] 비가 갠 뒤의 소녀
미번
minki
05/13 14442 25
직장 근처 파트타임주부(41)를 집으로 데려가면 10년만의 땀범벅이 된 진심섹스로 거유 젖꼭지가 쭈뼛서고 방뇨절정하는 이야기
동인
1Q2W3E4R
05/13 39294 154
ai, 명조) 장리와 데이트 후 잔뜩 연인섹스 했다
야짤
kjh9304
05/13 16654 111
[구매보급]순애노예 純愛ドレイ。
소리
이름뭐하지
05/13 9713 63
소악마 스마트폰 작업현황
작업현황
toung
05/13 17020 22
[ai번역=오오토리 마히로] 나의 이세계 하렘 2
동인
mybest
05/13 17233 35
[이미지번역 100%,수정1]Daily Lives of My Countryside v0.3.4.3
번역
dodoph123
05/13 34170 170
[Dekosuke 18gou] 너의 눈동자에 반한 게 아냐 (모자이크 제거 합체판)
동인
사축몬(퇴사)
05/12 35686 79
[요청복구] RJ311439 [손번역] 전희 루루카 ver1.1 한글패치 수정3
복구
Ghost
05/12 40229 54
벽자지
동인
안드레
05/12 28778 98
야짤
쩝냡
05/12 17497 31
[손번역] kurosu gatari 와일드식 총집편 오마케
동인
uhyoo
05/12 24929 71
MurPloxy 복구
영상
ㅔㅔ
05/12 23772 83
[요청복구/직번]밀크쉐이크1+2편[MaidenMasher+Spizzy]
영상
goovidla
05/12 33302 206
이때까지 재밌게 한 게임 후기(스포)
후기 및 공략
aim762
05/12 32390 62
공주님은 왕자님보다 못생긴 아저씨를 좋아하지만 NTR같은 건 아닙니다
동인
에우리알레
05/12 26703 101
실수했으니 복구 [Freshwomen 2]
복구
zadvoskoi
05/12 34541 59
[구매보급] RJ01477151 RJ01504060 [한국어 자막판] 남편 밖에 모르는 신혼 유부녀가 ○밥 자○님에게 탁란당하는 이야기♡
소리
r4gsdrg
05/12 21067 85
[직번] [청아] [ushidaihuku] 나의 돌 (트릭컬)
동인
yjgtiihty
05/12 12357 59
ai)----청아임신스압----이리야
야짤
Ghost
05/12 8435 28
후타) [obsession! (Hyoga.)] 무언가 자라난 하지메 3.5
동인
스타더스트
05/12 14743 21
ai) 렌탈 치즈루
야짤
Ghost
05/12 7540 30
ai) 블아 유메
야짤
Ghost
05/12 11195 29
보추) [Locon]카나메 10
동인
요요코코
05/12 25154 29
[청아/근친/서양](BEN10)Day With GWEN
영상
Ghost
05/12 33777 137