光说不练假把式,在浏览器自定义脚本管理插件系列介绍中介绍了几款比较流行的油猴插件,今天就动手实际写一个简单的油猴脚本,实现在公众号文章管理页按Ctrl+K快捷键时将光标聚焦到搜索框的功能。
本公众号的老读者可能知道,我是一个键盘控,所有的操作都想用键盘来实现,不太喜欢用鼠标,感觉不舒服、不效率。平时在写公众号文章的时候,有时会需要在已发布的文章列表里搜索一下以前的文章作为参考,会习惯性的按 Ctrl+K 或者 / ,希望光标能聚焦到搜索框。而公众号文章管理页面并没有提供这个功能,感觉就很不方便。
要是以前的话,我可能会通过写控制台脚本来实现这个功能。实现起来很简单,但是有个问题,那就是不方便复用。下次再用到的时候,需要先从别的地方拷贝过来,再粘贴到控制台中运行。或者存成devtools代码片段,能比从别的地方拷过来强一些,但是要想让代码生效的话,也得先打开控制台,运行一下才行,还是挺麻烦。有了油猴插件,就能解决这个问题了。下面我们就从头写一个油猴脚本来实现这个功能。
首先当然要先安装油猴插件,这里的油猴插件就统指用户脚本管理插件了。我装的是篡改猴(Tampermonkey)。装好之后,将其固定到导航栏,方便使用:
然后点击篡改猴插件图标,在弹出的菜单中点击添加新脚本。
就会打开脚本编辑器了,里面默认是模版代码,我们可以在它的基础上修改
修改后的效果如下
源代码:
// ==UserScript==
// @name 给公众号后台文章管理界面增加按Ctrl+K快捷键将光标聚焦到搜索框的功能
// @namespace wbms
// @version 0.1
// @description 实现在微信公众号后台文章管理界面按Ctrl+K快捷键时将光标聚焦到搜索框
// @author cmdyu
// @match https://mp.weixin.qq.com/cgi-bin/appmsgpublish?*
// @icon <$ICON$>
// @grant none
// ==/UserScript==
(function() {
'use strict';
var $bodyContainer = document.querySelector('body')
var $searchInput = document.querySelector("div.weui-desktop-form__input-area > span > input")
$bodyContainer.addEventListener('keydown', function (e) {
if (e.ctrlKey && e.key === 'k') {
$searchInput.focus()
}
})
})();
其中最重要的一个属性是@match,它决定了在哪个网页上运行这个用户脚本。保存之后,就可以在已安装的脚本列表中看到这个脚本了:
这样再打开公众号后台文章发表记录页面的时候,就可以看到篡改猴插件图标上显示了一个红色的1,说明当前这个页面上运行了一个用户脚本。
我们按Ctrl+K试下效果,可以看到光标聚焦到搜索框了。
至此,效果完美实现。
总结一下的话,在篡改猴插件中写用户脚本的体验还是很好的,整个过程很流畅,界面交互设计的很赞,不愧为用户脚本管理插件中的翘楚。
有了像篡改猴这样的脚本管理插件,感觉真是打开了新世界的大门,自定义网页变成了一件特别容易的事情,剩下的就看创意了。
欢迎关注微信公众号:文本魔术,了解更多