ExtOn40

在40code上加载任何来源扩展, 包括文件和其它网站!

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

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

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

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

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

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

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

Advertisement:

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

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

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

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

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

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

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

Advertisement:

// ==UserScript==
// @name        ExtOn40
// @description 在40code上加载任何来源扩展, 包括文件和其它网站!
// @version     1
// @author      0832
// @match     https://www.40code.com/*
// @grant       none
// @namespace   ExtOn40
// @run-at      document-start
// @license MIT
// ==/UserScript==

function waitForVmDeclaration() {
    return new Promise((resolve) => {
        let interval = setInterval(() => {
            if (typeof vm !== 'undefined') {
                clearInterval(interval);
                resolve();
            }
        }, 100);
    });
}

async function main() {
    await waitForVmDeclaration();
    console.log('%c💫 ExtOn40', 'font-weight: bold;');
    vm.extensionManager.securityManager.getSandboxMode = function () { return 'unsandboxed' };
    vm.extensionManager._isValidExtensionURL = function (a) { return a };
}
main();