Greasy Fork

来自缓存

Greasy Fork is available in English.

WELearn英语网课答案显示

显示填空题和问答题答案

当前为 2020-03-24 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         WELearn英语网课答案显示
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  显示填空题和问答题答案
// @author       SSmJaE
// @match        https://course.sflep.com/student/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    function getBlankAnswers() {
        let answers = window.frames[0].document.querySelectorAll('span.key');
        let buffer = window.frames[0].document.querySelectorAll('div.key');


        if (answers.length > 0 || buffer.length > 0) {
            container.innerHTML = '';
            container.appendChild(title);
            container.style.visibility = 'visible';
            for (let i = 0; i < answers.length; i++) {
                let content = document.createElement('div');
                content.textContent = answers[i].textContent;
                content.setAttribute('style', "margin: 10px; color: orange; font-size: medium; overflow-y: auto; max-height: 375px")
                container.appendChild(content);
            }
            for (let i = 0; i < buffer.length; i++) {
                let content = document.createElement('div');
                content.textContent = buffer[i].textContent;
                content.setAttribute('style', "margin: 10px; color: orange; font-size: medium; overflow-y: auto; max-height: 375px")
                container.appendChild(content);
            }
            answers = '';
        } else {
            container.style.visibility = 'hidden';

        }
    }
    var title = document.createElement('div');
    title.textContent = '参考答案';
    title.setAttribute("style", "background: inherit; height: 25px; margin-top: 10px; text-align: center; font-size: x-large");

    var container = document.createElement('div');
    container.setAttribute('style', "top: 100px; left: 100px; margin: 0 auto; z-index: 1024; border-radius: 4px;" +
                           " box-shadow: 0 11px 15px -7px rgba(0,0,0,.2), 0 24px 38px 3px rgba(0,0,0,.14), 0 9px 46px 8px rgba(0,0,0,.12);" +
                           " position: absolute; background: #fff; width: 250px; max-height: 400px; min-height: 200px;overflow:auto;")
    document.body.appendChild(container);

    function listener() {
        console.log('frame is changing');
    }
    // window.onload = getBlankAnswers;
    container.addEventListener('click', getBlankAnswers, false);
    setInterval(getBlankAnswers, 3500);


    function makeDraggable(elem) {
        document.mouseState = 'up'
        elem.mouseState = 'up'
        elem.lastMousePosY = null
        elem.lastMousePosX = null
        elem.proposedNewPosY = parseInt(elem.style.top, 10)
        elem.proposedNewPosX = parseInt(elem.style.left, 10)
        document.onmousedown = _ => {
            document.mouseState = 'down'
        }

        document.onmouseup = _ => {
            document.mouseState = 'up'
            elem.mouseState = 'up'
        }
        elem.onmousedown = e => {
            elem.lastMousePosY = e.pageY
            elem.lastMousePosX = e.pageX
            elem.mouseState = 'down'
            document.mouseState = 'down'
            document.onselectstart = e => {
                e.preventDefault()
                return false
            }
        }
        elem.onmouseup = e => {
            elem.mouseState = 'up'
            document.mouseState = 'up'
            document.onselectstart = null
        }
        const getAtInt = (obj, attrib) => parseInt(obj.style[attrib], 10)
        document.onmousemove = e => {
            if ((document.mouseState === 'down') && (elem.mouseState === 'down')) {
                elem.proposedNewPosY = getAtInt(elem.parentElement, 'top') + e.pageY - elem.lastMousePosY
                elem.proposedNewPosX = getAtInt(elem.parentElement, 'left') + e.pageX - elem.lastMousePosX
                if (elem.proposedNewPosY < 0) {
                    elem.parentElement.style.top = "0px"
                } else if (elem.proposedNewPosY > window.innerHeight - getAtInt(elem.parentElement, 'height')) {
                    elem.parentElement.style.top = window.innerHeight - getAtInt(elem.parentElement, 'height') + 'px'
                } else {
                    elem.parentElement.style.top = elem.proposedNewPosY + 'px'
                }
                if (elem.proposedNewPosX < 0) {
                    elem.parentElement.style.left = "0px"
                } else if (elem.proposedNewPosX > window.innerWidth - getAtInt(elem.parentElement, 'width')) {
                    elem.parentElement.style.left = window.innerWidth - getAtInt(elem.parentElement, 'width') + 'px'
                } else {
                    elem.parentElement.style.left = elem.proposedNewPosX + 'px'
                }
                elem.lastMousePosY = e.pageY
                elem.lastMousePosX = e.pageX
            }
        }
    }

    makeDraggable(title);



})();