kone
소미소프트

소미소프트

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

07/28/2025, 04:59:26
유틸
2718 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.(수정추가) 미리보기 이미지 게시글 이동시에도 남아있는 오류 수정
미번) 오랄엣치 ♡ 플레이어 - 배덕 시스터 편 - (おーらるえっち♡ぷれいやー -背徳シスター編-)
미번
darkunicorn
05/10 13214 34
공식번역 / 청아 / 이종간) 검은 유원지 + 검은 유원지II: 묵시록
번역
darkunicorn
05/10 51635 129
DOA 캐릭터 스타킹짤
야짤
무이이야
05/10 18755 18
[기계번역] 어서오세요! 어린이 만들기 온천 마을(30일 6/9일까지)
번역
rhnbbb
05/10 68184 305
미츠리 무한의 성욕
영상
bigfan
05/10 40596 227
번역파일 Only / 촉수 / RJ01376315) 음구조복 토에하 ~퇴마 무녀 3D 터치 시뮬레이션~ v1.0.2 (淫穴調伏トエハ ~退魔巫女3Dおさわりシミュレーション~)
번역
darkunicorn
05/10 39430 111
[직번] [Kagto] 반찬당번 마치다짱 단편모음
동인
acefs
05/10 28642 181
시시아 / 벨 / 엘렌 / 니콜 - 리버스 카우걸 영상 - (ZZZ)
영상
브레머튼
05/10 25737 104
미번 / 촉수 / RJ01376315) 음구조복 토에하 ~퇴마 무녀 3D 터치 시뮬레이션~ v1.1.2 (淫穴調伏トエハ ~退魔巫女3Dおさわりシミュレーション~)
미번
darkunicorn
05/10 17139 58
[QHD 24f] 오토메도리 1,2
영상
Shinjiro
05/10 19586 159
미번 / 청아 / RJ01613313) 1년생 아이돌 수행중!? v1.02 (1年生アイドル 修行中!?)
미번
darkunicorn
05/10 13626 40
[요청없는 기습복구]변환장희 샤인미라지/RJ226108/変幻装姫シャインミラージュ 敗北へのカウントダウン
복구
렐루
05/10 37246 81
청아 / RJ01376119) みるくいちご 카리나와 노노아 ~성장 기록~
영상
darkunicorn
05/10 41954 172
구 멸망 방주 정리 및 중복 제거 작업 완료
작업현황
ㅇㅇ
05/10 11106 22
amatake akewo 자위를 배울 틈도 없다 (ft 애덤 스미스)
동인
bigfan
05/10 28118 91
비월선행록 종합 수집 정보
정보
공승아
05/10 22678 35
[실시간 번역기 3.2.10] 어서오세요! 어린이 만들기 온천 마을 지원 중
작업현황
mrpls
05/10 27901 54
[미번] 성욕 처리도 간호사에게 맡겨줘, 선배, 가르쳐 주세요! ~야겜을 빌려준 상대는 호기심 왕성한 인싸 후배였습니다~
미번
미스터장
05/10 12566 26
로빈 (스타레일) 4K / 1080p
영상
브레머튼
05/10 14666 78
[미번] 미번 일겜 17개 + 미번 양겜 2개
미번
미스터장
05/10 32271 94
장리 (명조)
영상
브레머튼
05/10 17979 105
플루라이트 (엔드필드)
영상
브레머튼
05/10 27501 110
고죠고죠샌세 서비스씬만
영상
Ghost
05/10 31360 176
[Asakura Kukuri / Small Marron] 패배 ~내 아야 누나가 함락될 때까지
동인
morgan911
05/10 36114 90
[Jzargo] 특명 수사관 이치가야 린 ~항문 치욕 조교편~
동인
morgan911
05/10 21389 122
[버전업 알림] 음최도시 휴프노즘 1.07 번역 적용완
번역
saika
05/10 39417 145
메이 쨩은 빗치 갸루
동인
hatlatal
05/10 29747 87
오늘의 포로
동인
hatlatal
05/10 21362 80
ai, 원신) 닐루와 즐거운 시간을 보낸 뒤 잔뜩 섹스 했다
야짤
kjh9304
05/10 11853 84
토모에 ○미의♥보지만개 장난감 리뷰
동인
hatlatal
05/10 13441 29