kone
소미소프트

소미소프트

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

07/28/2025, 04:59:26
유틸
2533 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/27 14973 88
RJ01389782 비밀 노출 마나카 커스텀 미션 번역본 복구 요청드립니다.
요청
merch3n
05/27 1717 0
JJJJJ가 쓰는 카린형무소 후기 및 어쩌다 도M공략
후기 및 공략
gooddaytodie
05/27 2134 2
[미번][이종간][구매보급] RJ208892 シーイルサーバー
미번
샤이닝
05/27 6616 30
[복구요청] 사실은 에로했던 동화 빨간망토
요청
asdmqwmle
05/27 2784 0
예전에 봤던 동인지인데 제목아는사람..
질문
thalthvmxm
05/27 1793 0
[복구요청]【한국어 자막판】뒷계정 여자의 오호 신음소리 자위&섹스 음성 투고【오호고에】
요청
그드즈브
05/27 1388 1
자작 게임) 마법소녀 사키 ~악으로 떨어져 타락~
창작
곰돌123
05/27 4866 117
Tsukumaru-TS해서 파파의 야한 딸이 되는 아르바이트 그리고 딸로 타락할 때까지가 세트
동인
k8625
05/27 8857 52
[AI번역][구매보급]무치 무지 착각속의 생활 + 신생 무치 무치 시골 생활 (수정1)
번역
솔라셀
05/27 15296 98
만화 하나 찾아주세용
질문
hwang7
05/27 1219 0
[배틀 퍽][일부 움떡][역간] 서큐버스 아카데미아 어펜드 개조 버전 공유
번역
V
05/27 14973 139
Iapoc-칠칠맞은 시스터
동인
k8625
05/27 10482 54
꼴리는게 보장되어있는 태그
일반
alumni
05/27 1644 3
ai번역 손식질 학생회 회장의 가슴이 표적이 되고 있다
동인
1Q2W3E4R
05/27 8559 42
[구매보급]다우너 소꿉친구의 진짜 질투! 코트가 열리면... ... 마이크로 비키니 차림!?
소리
이름뭐하지
05/27 4263 48
에로검열관 DLC 후기
후기 및 공략
그레이스
05/27 4097 9
여주 타락 ntr겜 맛있는거 없나
질문
rhrnak
05/27 1848 0
퇴근 했다~~~야겜해야지
일반
sinbiru
05/27 1180 0
1차 수정 [AI/이미지 번역] 소와 양의 잡화점 ver1.01 (이미지 번역 합본)
번역
미식이네
05/27 14810 133
AI (하드: 능욕, 출산후 이종출산포함주의!) 능욕출산후 모유수유
야짤
진한농도
05/27 3375 8
로리퀘2 하다가 맘 꺾여버림
일반
wonny4455
05/27 1098 0
나 빡대가리임....
질문
rodosudo2
05/27 1268 -6
옛날에 했던 적있는 게임인데 이름이 기억이 안납니다
질문
KuKure
05/27 1027 0
섀도우버스WB 카드 누패
유틸
나나바
05/27 1811 9
야겜 추천좀
질문
zatsidjc
05/27 881 0
세계멸망직전 당신의 선택
일반
에로탐구가
05/27 1226 0
맥북 안되는게 참 많네
질문
mudeog802
05/27 962 1
[복구요청] RJ01242234 Witch's Dungeon
요청
Arckhia
05/27 1432 0
대마인 RPGX 아키야마 린코 드라마 CD 「암소 대마인 사육 중, 모집) 젖 짜기 사육사」
소리
shiroi
05/27 4163 51