WykopEmbedHelper

Skrypt pozwala na wklejanie obrazka ze schowka bez zapisywania go na dysku komputera

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         WykopEmbedHelper
// @namespace    wykopembedhelper
// @version      0.4.1
// @description  Skrypt pozwala na wklejanie obrazka ze schowka bez zapisywania go na dysku komputera
// @author       RJ45
// @match        https://wykop.pl/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    window.addEventListener('paste', e => {
        let file = e?.clipboardData?.files[0];
        
        if (file == null) {
            return;
        }

        let dataTransfer = new DataTransfer();
        dataTransfer.items.add(file);


        if (document.querySelector('.upload')) {
            let input = document.querySelector('.upload').querySelector('input[type=file]');
            input.files = dataTransfer.files;

            let event = new Event('HTMLEvents');
            event.initEvent('change', false, true);
            input.dispatchEvent(event);
            
            return;
        }

        if (document.activeElement.tagName != 'TEXTAREA') {
            return;
        }

        let sectionNode = document.activeElement.closest('section.editor');

        if (sectionNode == null) {
            return;
        }

        let fakeDropEvent = {
            preventDefault: () => {},
            stopPropagation: () => {},
            dataTransfer: dataTransfer
        };

        document.activeElement.closest('section').__vue__.drop(fakeDropEvent);
    });
})();