Greasy Fork is available in English.
快捷便笺,快速记录所需信息
// ==UserScript==
// @name 快捷便笺
// @namespace kjnote Scripts
// @author Takitooru
// @match *://*/*
// @grant none
// @version 1.1
// @description 快捷便笺,快速记录所需信息
// @license GPL License
// ==/UserScript==
(function() {
window.onload = function() {
var Addjstyle = document.createElement('style');
Addjstyle.type = 'text/css';
Addjstyle.innerHTML = '#knote{width:20px;border:1px solid #70ae2d;position:fixed;top:2px;right:0px;z-index:999;background-color:#8bc34a;color:#fff;border-radius:3px;}';
Addjstyle.innerHTML += '.kjbtn{display: inline-block;text-align: center;cursor:pointer;}';
Addjstyle.innerHTML += '.boxhide{display: none;position:fixed;z-index:998;padding:3px;border-radius:3px;}';
Addjstyle.innerHTML += '.jstoolbar{color:#000;display:block;border-bottom:1px solid #ddd;background-color:#eeeeee;padding:10px 0 10px 0;}';
Addjstyle.innerHTML += '.slider{display:inline-block;font-size:13px}.sliderinput{vertical-align:middle;}';
Addjstyle.innerHTML += '.sclose{margin-right: 10px;font-size: 14px;text-align: center;font-weight:bold;color:black;width:20px;float:left;cursor:pointer;}';
Addjstyle.innerHTML += '.savetxt{width:80px;float:right;background-color:#8bc34a;border-radius:3px;color:#fff;padding:2px;font-size: 14px;text-align: center;cursor:pointer;}';
Addjstyle.innerHTML += '.stextarea{background-color: #eeeeee;margin: 0;padding: 5px 0 0 0;height: 200px;width: 350px;color: #000;font-size: 15px;resize: vertical;outline:none;border: none;scrollbar-width: thin;}.stextarea:focus{border: none;box-shadow: none;}';
Addjstyle.innerHTML += `.stextarea::-webkit-scrollbar {
width: 5px;
height: 5px;
}.stextarea::-webkit-scrollbar-thumb {
border-radius: 3px;-webkit-border-radius: 3px;
background-color: #8bc34a;
}.stextarea::-webkit-scrollbar-track {
background-color: transparent;
}`;
document.getElementsByTagName('head').item(0).appendChild(Addjstyle);
var Newdiv = document.createElement("div");
Newdiv.id = "knote";
Newdiv.innerHTML = '<span class="kjbtn">快捷便笺</span>';
var jsslider = '<div class="slider">透明度:<input class="sliderinput" type="range" min="30" max="100" step="1" value="100"></div>';
var jsavetxt = '<div class="savetxt">保存为txt</div>';
Newdiv.innerHTML += '<div class="boxhide"><div class="jstoolbar"><div class="sclose">X</div>' + jsslider + jsavetxt + '</div><textarea class="stextarea"></textarea></div>';
document.body.insertBefore(Newdiv, document.body.lastChild);
var boxname = document.getElementsByClassName("boxhide")[0];
document.getElementsByClassName("kjbtn")[0].onclick = function() {
boxname.style.display = "block";
boxname.style.top = "2px";
boxname.style.right = (Newdiv.clientWidth + 2) + "px";
};
document.getElementsByClassName("sclose")[0].onclick = function() {
boxname.style = null;
};
function Val2txt() {
let Filename = new Date().getTime();
let TextContent = document.getElementsByClassName("stextarea")[0].value;
let Addele = document.createElement('a');
Addele.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(TextContent));
Addele.setAttribute('download', Filename);
let jset = document.createEvent('MouseEvents');
jset.initEvent('click', true, true);
Addele.dispatchEvent(jset);
}
function o2t(vv) {
let getnamet = document.getElementsByClassName("stextarea")[0];
getnamet.style.opacity = vv.value / 100;
}
let savetxt = document.getElementsByClassName("savetxt")[0];
savetxt.addEventListener("click",function(e) {
Val2txt();
});
let opacity2t = document.getElementsByClassName("sliderinput")[0];
opacity2t.addEventListener("input",function(e) {
o2t(this);
});
}
})();