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

简介: 这是一个看脸的时代,颜值很重要,运营公众号做内容也是如此。除了要让内容本身有料、有用、有趣之外,我们还要给用户提供一个高颜值的排版。那么,如何排版出一个好看微信文章呢?

「这是我参与2022首次更文挑战的第 4 天,活动详情查看:2022首次更文挑战」。

壹伴排版 Plus,免开 vip

功能一

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

功能二

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

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


前言

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

工具探索

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

1.壹伴

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

image.png

2. 美编助手

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

image.png

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

微信富文本编辑器

image.png

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

快捷插入实现

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

image.png

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

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

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

免开 VIP

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

image.png

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

image.png

那这个小的 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 的合成事件,加上调试,在这里耽误了很久,换一个角度思考,从隐藏弹窗的角度一下子就解决了。

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

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

相关文章
|
10月前
|
JavaScript 前端开发 开发者
写了一个油猴脚本:获取微信公众号文章封面
写了一个油猴脚本:获取微信公众号文章封面
|
Web App开发 前端开发 JavaScript
[油猴脚本]文章拷贝助手,文章一键拷贝到微信公众平台
为什么要写这个脚本 最近开了个前端公众号,需要推送一些优质的文章,但由于时间的关系,原创内容太少,常规的做法是转载一些优秀的文章到自己的公众号。
211 0
|
存储 前端开发 JavaScript
[MDX Editor] 微信排版工具新选择
我写了一个微信排版编辑器,使用 MDX,可自定义组件、样式、生成二维码、代码 diff 高亮,可导出 markdown 和 PDF。
473 0
微信公众号文章排版需要注意的两个小细节
微信公众号文章排版需要注意的两个小细节
微信公众号文章排版需要注意的两个小细节
|
Web App开发 前端开发 JavaScript
|
19天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
19天前
|
小程序 安全 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的身份认证与授权机制。身份认证包括手机号验证、微信登录和第三方登录,而授权机制涉及角色权限控制、ACL和OAuth 2.0。实践中,开发者可利用微信登录获取用户信息,集成第三方登录,以及实施角色和ACL进行权限控制。注意点包括安全性、用户体验和合规性,以保障小程序的安全运行和良好体验。通过这些方法,开发者能有效掌握小程序全栈开发技术。
|
19天前
|
JavaScript 前端开发 小程序
微信小程序全栈开发之性能优化策略
【4月更文挑战第12天】本文探讨了微信小程序全栈开发的性能优化策略,包括前端的资源和渲染优化,如图片压缩、虚拟DOM、代码分割;后端的数据库和API优化,如索引创建、缓存使用、RESTful API设计;以及服务器的负载均衡和CDN加速。通过这些方法,开发者可提升小程序性能,优化用户体验,增强商业价值。
|
19天前
|
小程序 前端开发 JavaScript
微信小程序全栈开发中的PWA技术应用
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中PWA技术的应用,PWA结合Web的开放性和原生应用的性能,提供离线访问、后台运行、桌面图标和原生体验。开发者可利用Service Worker实现离线访问,Worker处理后台运行,Web App Manifest添加桌面图标,CSS和JavaScript提升原生体验。实践中需注意兼容性、性能优化和用户体验。PWA技术能提升小程序的性能和用户体验,助力开发者打造优质小程序。

热门文章

最新文章