Moodle SecureDisable

disable secure events

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name          Moodle SecureDisable
// @version      0.6
// @description  disable secure events
// @author       Vitaliy Tolstyakov
// @match        *://*/*
// @grant        none
// @namespace https://greasyfork.org/users/590687
// ==/UserScript==

(function() {
    'use strict';
    if(!document.body.classList.contains("quiz-secure-window")) return;

    Array.from(document.body.classList)
        .filter(className => className.includes('secure'))
        .forEach(className => document.body.classList.remove(className));

    const eventsToUnBlock = [
        'mousedown',
        'dragstart',
        'contextmenu',
        'copy',
        'keydown',
        'beforeprint',
        'afterprint',
        'keypress',
        'keyup'
    ];

    const stopEventPropagation = (event) => {
        event.stopPropagation();
    };

    eventsToUnBlock.forEach(event => {
        window.addEventListener(event, stopEventPropagation, true);
    });
})();