pwndrop 한글파일명 문제 해결방법을 수정해보았습니다
위글에서 작성하신 스크립트보고 그대로 따라 해보려고 했는데
댓글에 안된다는분도 계시고 저또한 이상하게시리 동작을 안해서 gpt도움을 좀 받아서 작성 해보았습니다
WebDAV는 아예 사용을 안할것 같아서 HTTP만 대충 구현을 해봣습니다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
// ==UserScript==
// @name pwndrop_한글깨짐방지
// @version 24-03-22
// @description try to take over the world!
// @author You
// @match https://테스트.synology.me/
// @icon https://테스트.synology.me/pages/img/pwndrop.png
// @grant none
// ==/UserScript==
(function() {
'use strict';
setTimeout(function() {
// 클릭 이벤트
document.addEventListener('click', function(event) {
// 클릭된 요소가 버튼이 아니면 종료
if (!event.target.matches('.btn-copy-link')) return;
event.preventDefault(); // 기본동작 중지
// 버튼과 가장 가까운 부모 요소찾기
var parent = event.target.closest('.row.upload-block');
// 부모 요소에서 .col-auto.grow.trans 찾기
var originalText = parent.querySelector('.col-auto.grow.trans small').textContent;
// "주소"를 추가하여 새로운 텍스트를 생성
var textToCopy = "https://테스트.synology.me" + originalText;
// 클립보드에 복사
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(textToCopy)
.then(() => {
console.log('Text copied to clipboard:', textToCopy);
// 복사여부 확인
})
.catch(err => {
console.error('Error copying text: ', err);
// 에러메세지
});
}
});
}, 100); // 0.1초 후에 실행
})();
|
cs |
1등
이정도면컴맹인듯 2024.03.23. 02:19
2등
빨간물약 2024.03.23. 09:31
음 다른 분들은 잘 안되시나 보네요
다른 웹 페이지 주소로 테스트를 못해서 어쩔수 없긴 하지만
이 코드도 한글 파일명 잘 되네요
그런데 영문 파일명은 깨져서 복사가 되네요
깨진 주소로 잘 되긴 하는데 희한하네요
/NDPnJyci/1661216380_(1) (1).gif - 원 파일명
/NDPnJyci/1661216380_%281%29%20%281%29.gif - 복사된 파일명
실행은 잘 됩니다
빨간물약
저도 똑같이 1661216380_(1) (1).gif 파일명으로 올려봣는데
저는 파일명 원본 그대로 복사가 잘되네요 흠...
제가 스크립트는 많이 안다뤄 봐서 모르겠지만 각자 사용하는 환경이
워낙 천차만별이라 이런 증상이 보이는걸까요...?
저는 파일명 원본 그대로 복사가 잘되네요 흠...
제가 스크립트는 많이 안다뤄 봐서 모르겠지만 각자 사용하는 환경이
워낙 천차만별이라 이런 증상이 보이는걸까요...?
빨간물약 2024.03.23. 10:06
GRT
캐시를 다 지우고 다시 적용 해보니 잘 작동 되네요
저 같은 경우는 이 코드도 잘 되고
제가 만든 코드도 잘 되는 상황입니다
아무래도 사이트 설정에 따라 뭔가 차이가 있는 거 같네요
두 코드 차이를 찾자면 setTimeout 부분인데
아마 로딩 관련 문제이거나 브라우저나 사이트 혹은
도메인 보안 설정? 관련 문제일 수도 있을 거 같고요
// ==UserScript==
// @name Pwndrop Link Korean Filename Fix
// @namespace http://tampermonkey.net/
// @version 0.2
// @description Pwndrop Link Korean Filename Fix
// @author 빨간물약
// @match *://pwn.서비스.com/*
// @icon https://pwn.서비스.com/pages/img/pwndrop.png
// @grant none
// ==/UserScript==
(function() {
'use strict';
setTimeout(function() {
// 함수를 문서에 추가하고 클릭 이벤트 리스너로 등록
document.addEventListener('click', function(e) {
// 클릭된 요소가 원하는 버튼인지 확인
if (e.target.closest('.btn-copy-link')) {
// 파일 경로 추출
const filePathElement = e.target.closest('.upload-block').querySelector('.col-auto.grow.trans small');
if (filePathElement) {
const filePath = filePathElement.textContent.trim();
let fullUrl = `https://pwn.서비스.com${filePath}`;
// WebDAV 버튼 클릭 시 특정 문자열 추가
if (e.target.innerText.includes('WebDAV')) {
fullUrl = `\\\\pwn.서비스.com@80\\${filePath}`;
}
// 클립보드에 파일 URL 복사
navigator.clipboard.writeText(fullUrl)
.catch(err => {
// 복사 실패시 에러 메시지 출력
console.error('클립보드 복사 실패:', err);
});
e.preventDefault(); // 기본 동작 방지
}
}
});
}, 100); // 0.1초 후에 실행
})();
혹시 이 코드 좀 테스트 해주실 수 있으신가요?
setTimeout 을 추가 해봤습니다
빨간물약
테스트 해보니까 이것도 이제 잘 되네요
기존 스크립트는 즉시 동작하게 만들어놧다 보니
아마 브라우저 환경이나 pc환경에 따라서 페이지로드 되는 속도가 조금씩 다르면서
스크립트가 잘 될때도 있고 안될때도 있고 했던게 아닐까 싶네요...?
기존 스크립트는 즉시 동작하게 만들어놧다 보니
아마 브라우저 환경이나 pc환경에 따라서 페이지로드 되는 속도가 조금씩 다르면서
스크립트가 잘 될때도 있고 안될때도 있고 했던게 아닐까 싶네요...?
빨간물약 2024.03.23. 10:30
GRT
네 다른 건 안건드리고 setTimeout만 추가 했는데 잘 되신다니 다행이네요
다른 안된다는 분은 맥OS 13에서 한글 파일 업로드 할 때 자모 분리 이슈 였다고 합니다
다른 안된다는 분은 맥OS 13에서 한글 파일 업로드 할 때 자모 분리 이슈 였다고 합니다
빨간물약
제가 브라우저에 사용중인 확장프로그램이 워낙 많아서
시크릿모드에서 먼저 체크를 해볼걸 싶은 생각이 드네요 ㅎ;;
맥은 한글이슈가 여기서 또 골치아프게 하는군요
시크릿모드에서 먼저 체크를 해볼걸 싶은 생각이 드네요 ㅎ;;
맥은 한글이슈가 여기서 또 골치아프게 하는군요
빨간물약 2024.03.23. 10:40
GRT
소노마 14.1.1에서는 문제 없더라고요
cmt alert