这个油猴脚本也许对你微信排版有帮助

吾粲
• 阅读 1429

壹伴排版 Plus,免开 vip

功能一

在微信公众平台可直接插入壹伴的模板,免开 vip

功能二

壹伴模板市场可以直接复制模板

下文是记录这个油猴脚本开发的思考


前言

之前我注册了一个微信公众号“JS酷”,定位是前端工程师进阶,也开始发了一些文章,在这个过程中我发现我的微信文章排版没有其他公众号好看,这是一个看脸的时代,颜值很重要,运营公众号做内容也是如此。除了要让内容本身有料、有用、有趣之外,我们还要给用户提供一个高颜值的排版。那么,如何排版出一个好看微信文章呢?

工具探索

然后搜索了下微信排版工具,网站有一大堆排版工具

1.壹伴

使用方法: 直接上网站下载插件并安装在自己平时用的浏览器即可。平时在该浏览器上登录公众号后台即可使用。装完以后打开公众号如下图:

这个油猴脚本也许对你微信排版有帮助

2. 美编助手

使用方法: 直接上网站下载插件并安装在自己平时用的浏览器即可。平时在该浏览器上登录公众号后台即可使用。装完以后打开公众号如下图:

这个油猴脚本也许对你微信排版有帮助

那么就以这 2 个为例,研究其实现过程

微信富文本编辑器

这个油猴脚本也许对你微信排版有帮助

通过微信控制台打开,我们可以看到微信使用的富文本编辑器是ueditor,我们可以直接在控制台修改 html ,修改完成后就可以预览了,由此可以得知我们可以用 html 来排版文章,但是我们不能使用 css,必须使用内联 style

快捷插入实现

接下来以壹伴微信编辑器插件为例,研究下其实现方式;
点击的时候就可以直接插入编辑器中,既然知道了使用的是 ueditor ,我们可以去官网找 api, 看看是否有相关 api?

这个油猴脚本也许对你微信排版有帮助

我们可以通过官网找到插入 html 的方法

在当前光标位置插入 html 内容

ue.execCommand('inserthtml', '<span>hello!</span>');

免开 VIP

当然也不是都免费的,很多模板都需要开通 vip

这个油猴脚本也许对你微信排版有帮助

点击这些 vip 模板就会有个让你开 VIP 的弹窗。

这个油猴脚本也许对你微信排版有帮助

那这个小的 vip 图标就可以难到我们前端工程师吗?一个 JS 脚本搞定

$(function() {
        setTimeout(() => {
            const style = document.createElement('style');
            const heads = document.querySelector('head');
            style.setAttribute('type', 'text/css');
            style.innerHTML = `.buy-vip-dialog-v3{display:none !important;}.mpa-dialog-parent-no-scroll {
      overflow: auto !important;
    }`;
            heads.append(style);
        }, 1000);
    })

    $(document)
        .off('click', '.material-item .cover')
        .on('click', '.material-item .cover', e => {
            e.stopPropagation();
            const html = $(e.target)
                .parent()
                .find('.html-container')
                .html();
            window.UE.getEditor('js_editor').execCommand('insertHTML', html);
        });

setTimeout 是为了在脚本最后插入样式,将弹窗隐藏掉

模板市场直接复制

使用剪切板 api event.clipboardData.setData() 这个是现代浏览器都支持的 api

简单示例

document.addEventListener('copy', function(e){
  e.clipboardData.setData('text/plain', 'foo');
  e.preventDefault(); // 阻止浏览器默认事件
});

通过以上代码就可以用 JavaScript 来修改剪切板的内容了,需要注意的是阻止浏览器默认事件

document.getElementById("copyBtn").onclick = function() {
  document.execCommand('copy');
}

然后需要触发复制

最终代码

$(document)
    .off('click', '.copy')
    .on('click', '.copy', function (e) {
        e.stopImmediatePropagation()
        const text = $(this).parents('.style-waterfall-inner').find('.detail').html()
        console.log(text);
        // 复制触发
        document.addEventListener('copy', function copyCall(e) {
            e.preventDefault();
            e.clipboardData.setData('text/html', text);
            e.clipboardData.setData('text/plain', text);
            document.removeEventListener('copy', copyCall);
        });
        document.execCommand('copy');
        alert('复制成功');
        $('.pay-tips-dialog').hide()
    });

开发小结

有的同学会认为这个工具开发的相当简单,只需要几行代码即可搞定。

其实并不是这样,开发这个脚本我至少花费了我两天的时间

  1. 技术调研,微信富文本编辑器插入 API
  2. 技术调研,剪切板复制 API。

换位思考

其中有个问题卡了我很久,当点击后需要阻止壹伴插件的弹窗问题,我就从阻止浏览器事件方面考虑了:

使用  event.stopImmediatePropagation()  方法,可以用于停止冒泡,并阻止当前元素上的处理程序运行。使用该方法之后,其他处理程序就不会被执行。

壹伴插件是使用 react 来实现的,然后又去看 react 的合成事件,加上调试,在这里耽误了很久,换一个角度思考,从隐藏弹窗的角度一下子就解决了。

开发还是要多换几个角度思考,换个角度也许就柳暗花明。

以上就是本文全部内容,希望这篇文章对大家有所帮助,也可以参考我往期的文章或者在评论区交流你的想法和心得,欢迎一起探索前端。

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
微标题信公众号文章,阅读数,点赞数历史文章抓取
微标题信公众号文章,阅读数,点赞数历史文章抓取需求最近在做舆情与微信文章相关的数据抓取,发现微信公众号有些难点很难克服。市面上流行的数据抓取思路要么被腾讯封杀,要么操作难度大。解决方案搜狗微信无法采集历史,而且搜索也不按时间排序。获取的数据的价值不高,仅仅可以通过他获取公众号的biz。微信公众平台微信公
梦
4年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Wesley13 Wesley13
3年前
JAVA获取微信小程序openid和获取公众号openid,以及通过openid获取用户信息
一,首先说明下这个微信的openid  为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,如果需要在多公众号、移动应用之间做用户共通,则需前往微信开放平台,将这些公众号和应用绑定到一个开放平台账号下,绑定后,一个用户虽然对多个公众号和应用有多个不同的OpenID,但他对所有这些同一开放平台账号下的公众
Wesley13 Wesley13
3年前
PHP微信小程序支付——签名错误
!(https://static.oschina.net/uploads/space/2018/0509/141657_Tqix_3477605.png)先分清几个概念:微信公众平台、微信开放平台、微信商户平台1.微信公众平台、微信开放平台、微信商户平台是三个不同的平台2.微信公众平台:用于公众号、小程序等等的设置平台,包括APPID、APP
Wesley13 Wesley13
3年前
h5 接入微信支付
我们公司,现在用ping做h5接入,用的是h5"壹收款"准备:如果公司,现在还没有公众号的话,支付宝。可以把这些工作,给ping来做这些事情 1.注册微信公众号,开通支付功能。2.注册ping (如果是自己开开通的微信支付,要填写相关信息)3.微信设置网页授权获取用户基本信
Wesley13 Wesley13
3年前
Java微信公众平台开发(八)
我们上一篇写了关注出发图片的回复。想着在发送一次音乐,最后基于回复消息分类情况下,实现一个简单的只能话回复。先附一张大致效果图。!(https://oscimg.oschina.net/oscnet/847b9c6272bbacc10e79af12589a96da54e.jpg)下面我们进入代码阶段。(一)修改消息转发器MsgDispatch
Stella981 Stella981
3年前
JFinal极速开发微信公众号
10分钟搭建属于自己的ngork服务器,实现内网穿透(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fblog.csdn.net%2Fzyw_java%2Farticle%2Fdetails%2F70341106)Android微信、支付App支付SDK(http
Wesley13 Wesley13
3年前
Java微信公众平台开发
转自:http://www.cuiyongzhi.com/post/63.html之前发过一个【微信开发】系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是很完全所以导致部分同学在有些地方做开发的时候遇到了一些阻力,收到这些朋友同学们的咨询反馈之后我也做了一些反思和总结,其中一部分同学说少了GlobalConst
流浪剑客 流浪剑客
1年前
微信伴侣WechatTweak for mac v3.8.5中文集成版 支持M1
微信小助手故障之后如何实现微信多开和微信防撤回免认证功能呢?这里小编为大家推荐另外一款非常不错微信多开助手微信伴侣WechatTweak,微信伴侣WechatTweak功能就比较简单直接,主要包括防撤回、多开、免二次认证登录和消息处理增强。下载:
流浪剑客 流浪剑客
1年前
微信伴侣WechatTweak for mac(微信防撤回、多开助手)v3.8.5中文集成版
微信小助手故障之后如何实现微信多开和微信防撤回免认证功能呢?这里小编为大家推荐另外一款非常不错微信多开助手微信伴侣WechatTweak,微信伴侣WechatTweak功能就比较简单直接,主要包括防撤回、多开、免二次认证登录和消息处理增强。下载:
吾粲
吾粲
Lv1
明月却多情,随人处处行。
文章
4
粉丝
0
获赞
0