写了油猴搜题脚本
1 // ==UserScript== 2 // @name 学习通手动搜题 3 // @description 可以手动输入关键词搜题,方便有效,关键字可以是开头的几个字,或者关键的几个词语.[tip:面板可以拖拽移动位置哦] 4 // @namespace dyh 5 // @version 0.0.0.1 6 // @match *://*/work/doHomeWorkNew?* 7 // @match *://*/exam/test/reVersionPaperPreview* 8 // @match *://*/exam/test/reVersionTestStartNew* 9 // @match *://*.zhihuishu.com/* 10 // @require http://code.jquery.com/jquery-3.5.1.js 11 // @grant GM_xmlhttpRequest 12 // ==/UserScript== 13 14 (function () { 15 'use strict'; 16 17 $(".edui-editor").css("z-index","600"); 18 19 /*****************************绘制界面****************************************/ 20 $("body").append("<div id=\"dyh_searchbyhand\" style=\"width:164px;position:fixed;top:100px;right:50px;border:1px coral dashed;z-index:999;box-sizing:content-box;\"></div>"); 21 $("#dyh_searchbyhand").html("<form id=\"dyh_form\"></form>"); 22 $("#dyh_form").html("<input id=\"dyh_text\" type=\"text\" placeholder=\"输入问题的关键字/回车\" autocomplete=\"off\" autofocus=\"true\" style=\"width:160px;\"><br>"); 23 $("#dyh_form").append("Question:<p id=\"dyh_Q\" style=\"word-wrap: break-word;\"></p>"); 24 $("#dyh_form").append("Answer:<p id=\"dyh_A\" style=\"word-wrap: break-word;\"></p>"); 25 movePanel("#dyh_searchbyhand"); 26 27 /******************************查询数据****************************************/ 28 $("#dyh_form").submit(function(){ 29 findAnswer(); 30 return false; 31 }); 32 33 function decodeUnicode(str) { 34 str = str.replace(/\\/g, "%"); 35 return unescape(str); 36 } 37 38 function findAnswer() { 39 var value = $("#dyh_text").val(); 40 GM_xmlhttpRequest({ 41 method: 'GET', 42 url: "http://????????(不公开接口了)/chati?q=" + value, 43 onload: function (res) { 44 var data = res.responseText; 45 console.log(data); 46 var question = data.match(/question\".\"(.+)?\",/)[1]; 47 var answer = data.match(/answer\".\"(.+)?\"/)[1]; 48 49 $("#dyh_text").val(""); 50 $("#dyh_Q").text(decodeUnicode(question)); 51 $("#dyh_A").text(decodeUnicode(answer)); 52 }, 53 onerror: function (err) { 54 alert("服务器连接失败"); 55 } 56 }); 57 } 58 59 function movePanel(obj,callback){ 60 var _evenObj=null; // 触发事件的对象 61 var _move=false; // 移动标识 62 var _x,_y; //鼠标离控件左上角的相对位置 63 64 $(obj).bind({ 65 mousedown:function(e){ 66 _evenObj=e.currentTarget; // 当前触发的作用对象 67 _move=true; 68 var cx=$(_evenObj).position().left; // 获取父类的X轴偏移量,如果相对屏幕的偏移量,请把position()改为offset(); 69 var cy=$(_evenObj).position().top; // 获取父类的Y轴偏移量 , 同上 70 _x=e.pageX-cx; 71 _y=e.pageY-cy; 72 }, 73 mouseup:function(){ 74 //判断方法是否存在 75 if (typeof callback != 'undefined' && callback instanceof Function) { 76 $ext=$.extend({},$(obj)); // 为obj对象扩展回调方法 77 $ext.addMethod=callback; 78 $ext.addMethod(); 79 } 80 } 81 }); 82 $(document).bind({ 83 mousemove:function(e){ 84 if(e.which==1){ // 判断是否是左键按下 85 if(_evenObj!=null){ // 判断触发事件的对象是否为空 86 if(_move){ 87 var x=e.pageX-_x; 88 var y=e.pageY-_y; 89 $(_evenObj).css({ 90 top:y, 91 left:x 92 }); 93 } 94 } 95 } 96 }, 97 mouseup:function(){ 98 _evenObj=null; 99 _move=false; 100 } 101 }); 102 } 103 })();
程序宅男