Greasy Fork

Greasy Fork is available in English.

问卷星(定制比例)模板(2021最新版!!!)

如遇问题可加QQ 835573228

当前为 2021-05-27 提交的版本,查看 最新版本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         问卷星(定制比例)模板(2021最新版!!!)
// @namespace    http://tampermonkey.net/
// @version      1.3
// @description  如遇问题可加QQ 835573228
// @author       ZYY
// @include     https://www.wjx.cn/*
// ==/UserScript==

(function() {
    'use strict';

    //===========================开始==============================

    //填写刷问卷的网址
    var wenjuan_url = 'https://www.wjx.cn/vj/QvfxoEU.aspx';
    //while(document.querySelector('#SM_TXT_1').innerHTML.indexOf('验证失败')!=-1){
    if(window.location.href.indexOf('https://www.wjx.cn/wjx/join/complete.aspx')!=-1){
        window.location.href=wenjuan_url;
    }else if(window.location.href==wenjuan_url){

    }else{
        return
    }


    //获取题块列表
    var lists = document.querySelectorAll('.ulradiocheck')

    var ccc=0;
    //1.性别
    var ops = lists[ccc].querySelectorAll('li')
    ccc+=1
    var bili = [50,50];
    ops[danxuan(bili)].click()

    //2.年龄
    ops = lists[ccc].querySelectorAll('li')
    ccc+=1
    bili = [14,14,14,14,14,14,16];
    ops[danxuan(bili)].click()

    //3.学历
    ops = lists[ccc].querySelectorAll('li')
    ccc+=1
    bili = [20,20,20,20,20];
    ops[danxuan(bili)].click()

    //4.满意度
    ops = lists[ccc].querySelectorAll('li')
    ccc+=1
    bili = [20,20,20,20,20];
    ops[danxuan(bili)].click()

    //5.认同度
    ops = lists[ccc].querySelectorAll('li')
    ccc+=1
    bili = [20,20,20,20,20];
    ops[danxuan(bili)].click()

    //6.帅不帅
    ops = lists[ccc].querySelectorAll('li')
    ccc+=1
    bili = [70,30];
    ops[danxuan(bili)].click()

    //7.你喜欢的水果
    ops = lists[ccc].querySelectorAll('li');
    ccc+=1;
    bili = [5,5,5,5];
    var temp_flag = false;
    while(!temp_flag){
        for(var count = 0;count<bili.length;count++){
            if(duoxuan(bili[count])){
                ops[count].click();
                temp_flag = true;
            }
        }
    }

    //8.你喜欢的饮料
    ops = lists[ccc].querySelectorAll('li')
    ccc+=1
    bili = [50,50,50,50];
    temp_flag = false

    while(!temp_flag){
        for( count = 0;count<bili.length;count++){
            if(duoxuan(bili[count])){
                ops[count].click();
                temp_flag = true;
            }
        }
    }

    //9.你的名字
    document.querySelector('#q9').value='王翠花';

    //滚动到末尾
    scrollToBottom();

    //点击提交按钮
    setTimeout( function(){
        document.querySelector('#submit_button').click()
    }, 3 * 1000 );

    //点击单机验证按钮
      setTimeout( function(){
          document.querySelector('#SM_BTN_1').click()
    }, 4 * 1000 );

    //滑动验证
    setTimeout( function(){
      yanzhen();
    }, 7 * 1000 );

    //超时刷新处理
    setTimeout( function(){
      location.reload();
    }, 13 * 1000 );

    //===========================结束==============================
    //累加list前num数的和
    function leijia(list,num){
        var sum = 0
        for(var i=0;i<num;i++){
            sum+=list[i];
        }
        return sum;
    }

    //生成从minNum到maxNum的随机数
    function randomNum(minNum,maxNum){
        switch(arguments.length){
            case 1:
                return parseInt(Math.random()*minNum+1,10);
                break;
            case 2:
                return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
                break;
            default:
                return 0;
                break;
        }
    }
    //判断num是否在指定区间内
    function isInRange(num,start,end){
        if(num>=start && num<=end){
            return true;
        }else{
            return false;
        }
    }
    //单选题执行函数
    function danxuan(bili){
        var pp = randomNum(1,100)
        for(var i=1;i<=bili.length;i++){
            var start = 0;
            if(i!=1){
                start = leijia(bili,i-1)
            }
            var end = leijia(bili,i);
            if(isInRange(pp,start,end)){
                return i-1;
                break;
            }
        }
    }
    //多选题执行函数
    function duoxuan(probability){
        var flag = false;
        var i = randomNum(1,100);
        if(isInRange(i,1,probability)){
            flag = true;
         }
        return flag;
    }

    //清楚cookie
    function clearCookie() {
        var keys = document.cookie.match(/[^ =;]+(?=\=)/g);
        if (keys) {
            for (var i = keys.length; i--;) {
                document.cookie = keys[i] + '=0;path=/;expires=' + new Date(0).toUTCString();//清除当前域名下的,例如:m.kevis.com
                document.cookie = keys[i] + '=0;path=/;domain=' + document.domain + ';expires=' + new Date(0).toUTCString();//清除当前域名下的,例如 .m.kevis.com
                document.cookie = keys[i] + '=0;path=/;domain=kevis.com;expires=' + new Date(0).toUTCString();//清除一级域名下的或指定的,例如 .kevis.com
            }
        }
        alert('已清除');
    }
    //滑动验证函数
    function yanzhen(){
        var event = document.createEvent('MouseEvents');
        event.initEvent('mousedown', true, false);
        document.querySelector("#nc_1_n1z").dispatchEvent(event);
        event = document.createEvent('MouseEvents');
        event.initEvent('mousemove', true, false);
        Object.defineProperty(event,'clientX',{get(){return 260;}})
        document.querySelector("#nc_1_n1z").dispatchEvent(event);
    }

    //滚动到末尾函数
    function scrollToBottom(){
    (function () {
            var y = document.body.scrollTop;
            var step = 100;
            window.scroll(0, y);
            function f() {
                if (y < document.body.scrollHeight) {
                    y += step;
                    window.scroll(0, y);
                    setTimeout(f, 50);
                }
                else {
                    window.scroll(0, y);
                    document.title += "scroll-done";
                }
            }
            setTimeout(f, 1000);
        })();
    }


})();