kone
소미소프트

소미소프트

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

07/28/2025, 04:59:26
유틸
2602 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.(수정추가) 미리보기 이미지 게시글 이동시에도 남아있는 오류 수정
[[요청복구]] [RJ422316] 전투에로 RPG ~음욕의 마탑~
복구
에로스테는 필수 스테는 선택
05/20 29060 250
[기계번역/자동번역] Yaradiel’s Crown [v0.7.1]
번역
karuparu13
05/20 30551 65
Grimgrim-goat짱모음
동인
k8625
05/20 17794 125
[노모][Arai Kei] 반의 수수한 오타쿠에게 조건만남을 시켜보았다
동인
김덕배
05/20 25751 125
소와 양의 잡화 상점 이미지 번역 기록 -1-
작업현황
5dk2io1
05/20 5766 28
비월선행록 1.289 개조버전 수정 알림
번역
V
05/20 27726 184
헬스장에서 레바테인과 함께 (엔드필드)
영상
브레머튼
05/20 15665 105
[노모/오네쇼타] 누나 타임♥
동인
질겨찾기
05/20 23686 62
[보추] 박아줘! 시스터♂ ~ 무자각 섹스 ~
동인
질겨찾기
05/20 17884 54
역방향 이라마치오
야짤
toscana
05/20 5996 21
직번, 청아, 후타, 후여) [momomo] 언니들이 리나쨩에게 볼일이 있어서 집까지 와줬으면 좋겠어~♥ + 두개 더
동인
라비쉬
05/20 19688 66
(청아)[AI 번역][Nanao Yukiji] 조카의 여자친구를 훈육한 건 2~5화
동인
초보역식자
05/20 29115 134
[구매보급]쿨데레 만화 연구부 부장과 부실에서 몰래 오호 목소리 엄청 야한 교미부 활동
소리
이름뭐하지
05/20 8518 61
복구 2종
복구
햄댕이
05/20 32306 57
[한글패치]NAKED HIGHSCHOOL【학원 생활 노출RPG】Ver1.02
번역
아르
05/20 55567 271
Inu 변태 갸루 코스플레이어와 오프파코 하는 이야기
동인
SK
05/20 18678 81
[구매보급] 청초로 무구한 가희의 인식을 개변해 성봉사 매너로서 상냥하게 생하메
소리
rocoa
05/20 8421 52
[후원보급] [번역요청]후타) Yaradiels Crown
미번
겜남술녀
05/20 15523 27
[구매보급] 폭유 견습 서큐버스에 의한 「달콤한 토로」에너지 드레인~히소히소소리로 처음의 카운트다운 착정
소리
rocoa
05/20 11483 53
직번) [Kunifuto Work (Kunifuto)] 그 아이는 멀리 달려가버렸다
동인
ntrmmmmm
05/20 19241 103
[미번/번역요청] 성도회1일 교제
동인
k8625
05/20 12976 36
[미번/번역요청]렌탈 별장의 이웃이 위기감이 없어 없었던건 EX
동인
아돌
05/20 10948 28
[미번/번역요청]Nekoshoko-거유 로리소녀 미번
동인
k8625
05/20 14464 44
[요청복구] 【한국어 자막판】연하 여자친구의 사정 전에 쥐어짜는 속박 루인드 오르가즘 손딸
소리
CONEGPT
05/20 7088 47
청아)이런게 은근 꼴리네
야짤
gpsel157
05/20 13037 29
[번역]성노예령이 붙은 사고물건 ~퇴마 실패한 영능력 소녀 절정 지옥에 갇히다!?~
동인
마법우엉
05/20 26270 157
직번)[bosshi]낙원의 나쁜 아이들
동인
woo15
05/20 16379 39
ai 붕스)카스토리스 ntr 2
야짤
ezmood
05/20 8675 42
ai 붕스)카스토리스 ntr
야짤
ezmood
05/20 8929 52
[구매보급][번역요청]보추있음)RJ01500241 H 아내 만들기2
미번
skeh1023
05/20 12845 26