TL;DR
近来懒癌有点严重,网上冲浪的时候看到一些有意思的东西经常想发到手机里面看,但是又不想每次都登陆微信之类的东西,毕竟还要把微信打开拿起手机扫码太麻烦了。
然后想到之前还用 Server 酱他们做的 Wecom 酱在服务器搭了一个 Vinking 酱,平时也就用来收博客评论提醒,或许可以从浏览器这边直接用 Vinking 酱发到微信里面,这样就方便很多了。花了一点点时间做了一个简单的脚本,放到油猴里面就可以运行了。
插件的基本原理是先用 window.getSelection().toString() 获取到鼠标选中的文字,然后监听键盘的 ctrl、alt、 P ,如果选中不为空的话按下 ctrl + alt + P 就可以将选中的文字发到微信里面去。但是测试的时候经常出现微信那边只收到一大段文字的一部分,& 后面的东西收不到了。后面检查的时候才发现忘记给 & 做处理,导致 & 后面的字符串变成了网址参数部分。补上特定字符处理,就符合自己的需求了。
var selectTap = document.querySelectorAll("body");
selectTap[0].onmouseup = function(){
let selectText = window.getSelection().toString().trim();
if (selectText.indexOf("&") != -1) {
selectText = selectText.replace(/&/g, '{and}');//将 & 替换成 {and}
}
if (selectText != "") {
document.onkeydown=function(event){
if(event.ctrlKey && event.altKey && event.keyCode == 80){//ctrl + alt + P
var Tip = confirm("已经获取选中文字:\n"+ selectText +"\n需要转发到 Vinking酱 吗?");
if (Tip) {
/*处理转发*/
}
}
}
}
}顺带还写了个把网页二维码提取成网址再转发到微信去的插件,用到了 jsQR.js, html2canvas.min.js 和 jQuery 。但是跨域问题给我整不会了,弄了好久之后懒癌发作就放弃了
var creatButton = document.createElement("button");
creatButton.id = "getURL";
creatButton.style.position = 'fixed';
creatButton.style.bottom = '50px';
creatButton.style.right = '20px';
document.body.appendChild(creatButton);
var getURL = document.getElementById("getURL");
getURL.innerHTML = "截取二维码";
var creatImage = document.createElement("canvas");
creatImage.id = "qrcanvas";
creatImage.style.display = 'none';
document.body.appendChild(creatImage);
getURL.onclick = function(){
new html2canvas(document.body).then(canvas => {
let oImg = new Image();
oImg.src = canvas.toDataURL();
oImg.onload = function() {
var c = document.getElementById("qrcanvas");
var ctx = c.getContext("2d");
document.getElementById("qrcanvas").setAttribute("width",oImg.width);
document.getElementById("qrcanvas").setAttribute("height",oImg.height);
ctx.drawImage(oImg, 0, 0, oImg.width, oImg.height);
var imageData = ctx.getImageData(0, 0, oImg.width, oImg.height);
const code = jsQR(imageData.data, imageData.width, imageData.height, {inversionAttempts: "dontInvert",});
if(code){
var Tip = confirm("二维码获取成功,需要转发到 Vinking酱 吗?");
if (Tip) {
/*处理转发*/
}
}else{
alert("没有找到二维码");
}
}
});
} 

2021年10月01日 09:41
懒推动人类进步。
2021年10月09日 16:36
为什么要改变数组长度,直接用一个变量加一,变量大于五十后完成不是更好吗
2021年10月09日 16:44
因为这个数组记录着鼠标的XY位置,原本是想用这个数组去画鼠标移动轨迹的。后面懒得搞就把这个改变数组长度来验证保留下来了
2021年09月25日 10:21
我就直接开的邮件提醒,手机也会准时提醒#(酷)
你的滑动验证好酷啊,有教程链接么qaq
2021年09月25日 12:19
源码发到你邮箱了,其实就是鼠标移动一次数组长度+1,数组长度大于50之后验证完成
2021年09月25日 17:19
太棒了,我得研究研究qaq