关于我变成懒癌的那些事

首页 / 乱写 / 正文
TL;DR

近来懒癌有点严重,网上冲浪的时候看到一些有意思的东西经常想发到手机里面看,但是又不想每次都登陆微信之类的东西,毕竟还要把微信打开拿起手机扫码太麻烦了。

表情包

然后想到之前还用 Server 酱他们做的 Wecom 酱在服务器搭了一个 Vinking 酱,平时也就用来收博客评论提醒,或许可以从浏览器这边直接用 Vinking 酱发到微信里面,这样就方便很多了。花了一点点时间做了一个简单的脚本,放到油猴里面就可以运行了。

分享卡片加载中

插件的基本原理是先用 window.getSelection().toString() 获取到鼠标选中的文字,然后监听键盘的 ctrlaltP ,如果选中不为空的话按下 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.jshtml2canvas.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
    回复

    懒推动人类进步。

      头像
      Obvuls
      2021年10月09日 16:36
      回复

      为什么要改变数组长度,直接用一个变量加一,变量大于五十后完成不是更好吗

        头像
        Vinking
        2021年10月09日 16:44
        回复

        因为这个数组记录着鼠标的XY位置,原本是想用这个数组去画鼠标移动轨迹的。后面懒得搞就把这个改变数组长度来验证保留下来了

    头像
    火喵
    2021年09月25日 10:21
    回复

    我就直接开的邮件提醒,手机也会准时提醒#(酷)
    你的滑动验证好酷啊,有教程链接么qaq

      头像
      Vinking
      2021年09月25日 12:19
      回复

      源码发到你邮箱了,其实就是鼠标移动一次数组长度+1,数组长度大于50之后验证完成

        头像
        火喵
        2021年09月25日 17:19
        回复

        太棒了,我得研究研究qaq