// ==UserScript==
// @name RAP2纵向粘贴
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://rap2.amarcredit/repository/editor?id=*
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAELElEQVR4Xu2aTVIaQRTH/w8UGTfJDeINwg2Cu8BGOEHwBOouYqqCVRGzCzmB5ASSDbgTTxA9geYGZkMjxnmpBoYaiWBP9/QMAqyssvvNe795n91DWPAfLbj9sAIgW+HX6z1xDqJMKICZLzspZ7NdodtQ5PmEhA4gdOM9ZS1BCBWANeMtQggNgHXjLUEIBUBkxluAYAwgcuNDhmAMIFfunBJRIezsrCKPmRut6npRZe2kNUYA8mVxAkLJRAHjvYx6s+ps68rRBjATxo/CQR+CFoCZMt4QQmAAM2m8AYRAAN5/EtkE8ykz2qDEBRNf6sZemPuIKQN23xEh6xIVz744bVX5GgBw7hfOQJsYbQmldexcqD7YZF1uX/SNZUKWgKxflkvYjBTAuCEeEFDisnm09tPEUG9v/uBui/GQBSgzbvC4/NgB+BVqHjmBPGwSrPyBYFWQSwBxh8DSA3wEliGwzAHLJLisAqrla9q6ZRl86X3A+49ig5JUIOZXWh5BqKjsY8YfQjLbrKaUZ5RAMToYhh7PAtMU88pg7qC7C+YdIr4CaEvFGI01v8HJQhDj5TMiAiDqBHwA+BZMewyUiPBOw8gJW/iqs+pkdS5OogFQFtdE2Bhpz+gfYTFQI4JeWAyFMfCjdeRoH8tZByDjP5HE9f9TI9fEqnPo9ESFiHZ0vIFBe62jdE1nr7fHOoDc/l2BEu7pU0rKU12RcrbTf7uZBHMNoLcqxshkB06UWsdrDZX109bYB1Du1Ka+Yd+d3zBZVqaHBV+BV0pBk90kCNYB5MudX8/fEsvkuLIpjepftNyL+lPVghkXIpUu6CS7+AAoNzGDCtGsOnWp7LDkyr/fDBOmUbKLBYA8nQnSN/SVZFSaVefQUzhfFrIJuvHAmMb8+H6rIQDGIQifAyvNqHdS6b0wXT0WD5Axq93wWPogIloPCPzq/+sWRsnRWNQEAVZDQOYActEw6/b4lt3kdhg1/ykGVgHIYShf7mVAf2VZU2pyJr5ppt1mNf09bE+wDkAqLGu70+tKTzAbgAyvwmPxAP9DcwfeVGjwHkNOjpF4wGMI3V0CfzNAAGbcEJLFMNrhyAFIw+WABHLrpskx6E1w7CHgV2CQHB/kNNdvdbV/jG2TLjEWD/CMHQ4+bfMKEdEnMrpngs+93TCSo7yWF6vpYtD2OVYPeBwSoqI1N/iFMF+6LhXPvjo3z0H3/j8zAKRC+bIomZ4TvvjvA2RyZDy0dSvEiwfgdY7r90IrOc4FgFH7fN+tDe4T1H9zA8AzuX8iFOBQZe4AeMkRhBMVP5hLAAMIaslxbgFICINbJm5M6xznGoCvQjx5byD/P/cAvDyQm3DjtDAAJiVHqwBUsnDUa8aT48IB8CqEd/C6kABGnWOv2+AEKtY+l4/avXWeJw9ZgpwJBBqHdRSa9T3/ANL7/1+NirRZAAAAAElFTkSuQmCC
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Your code here...
const setValue=(es,json,i)=>{
if(Object.keys(json).length<1){
console.log("数据已使用完");
return;
}
if(i>=es.length){
console.log("字段已遍历完");
return;
}
let key=es[i].children[0].children[1].children[0].value || "";
es[i].children[0].children[6].children[0].focus();
if(key.length>0&&json[key.trim()]!=null){
es[i].children[0].children[6].children[0].value=json[key.trim()];
es[i].children[0].children[6].children[0].onkeyup=(event)=>{
if(event.code === "Space"){
event.target.onkeyup=null;
setValue(es,json,++i)
}
}
console.log("获取到key="+key+",设置值="+json[key.trim()]);
delete json[key.trim()]
}else{
console.log("获取到key="+key+",没找到内容,当前位置"+i);
setValue(es,json,++i)
}
}
const getJSONObject=(string)=>{
let lines = string.trim().split("\n");
let json={};
lines.forEach(e=>{
let a2=e.trim().split("\t");
json[a2[0].trim()]=a2[1];
})
return json;
}
const paste=(event)=>{
event.preventDefault();
let text="";
if (!event || !event.clipboardData) return;
let pText = event.clipboardData.getData('text/plain');
if (pText) {//有文本内容的时候才是true 注意:空字符串''是false
text=pText;
} else {
console.log("没有在剪切板里找到数据");
}
let json = getJSONObject(text.trim());
let nowElement=event.target;
let row=nowElement.parentElement.parentElement.parentElement;
let list=nowElement.parentElement.parentElement.parentElement.parentElement.children;
let index=0;
for(let i=0;i<list.length;i++){
if(row==list[i]){
index=i;
break;
}
}
setValue(list,json,index);
}
//超常模式
const cheat=()=>{
let desc=document.getElementsByClassName("td payload desc");
for(let a=0;a<desc.length;a++){
desc[a].addEventListener('paste',paste);
}
}
//正常模式
const cancel=()=>{
let desc=document.getElementsByClassName("td payload desc");
for(let a=0;a<desc.length;a++){
desc[a].removeEventListener('paste',paste);
}
}
let button=document.createElement("button");
button.className="MuiButtonBase-root MuiButton-root MuiButton-contained";
button.innerText="正常模式";
button.style.cssText="position: fixed;z-index: 10000;top: 10px;right: 50px;";
button.onclick=(event)=>{
if(event.target.innerText==="正常模式"){
event.target.innerText="超常模式";
cheat();
}else{
event.target.innerText="正常模式";
cancel();
}
}
document.body.appendChild(button);
})();
RAP2接口文档注释纵向粘贴
于 2022-12-20 19:42:47 首次发布