前言
Violentmonkey(真的长,别人都叫这款插件为“油猴”,而官方定义的似乎叫“暴力猴”,后面我们就以“油猴”为名称。
它是一个浏览器插件,主要目的是加载一段js代码到网页中,对原本的网页进行扩展或修改。而这些js代码可以由自己编写或从网络上获取。如比较流行的百度云解析脚本:
上图可以看出,通过这个脚本在网页原本的基础上增加了HTML,当然,还加载了一些js代码。
之所以用到这个插件是因为我需要在一个网课网站中多开页面同步播放里面的视频,以此完成视频进度。
而当我的鼠标焦点离开当前页面的时候,视频会自动暂停。
首先,我们都知道网站前段操作一般情况下都是使用JavaScript代码进行编写,那么先分析一下他的代码是怎么样的流程,再思考如何操作。我们打开“ 开发者工具 ”中查看html,html拉到最下面打开<Script>标签的时候很清晰的就看到了下图标注的代码。
分析
首先,我们都知道网站前段操作一般情况下都是使用JavaScript代码进行编写,那么先分析一下他的代码是怎么样的流程,再思考如何操作。我们打开“ 开发者工具 ”中查看html,html拉到最下面打开<Script>标签的时候很清晰的就看到了下图标注的代码。
通过网络得知,window.onblur便是焦点的监控器,只要监控器被触发就会执行下面的命令,而下面的player.j2s_pauseVideo();是一个叫polyv播放器的视频暂停函数。因此,根据视频的逻辑,我们在视频被暂停之后执行播放的函数,这样不就不触发焦点监控器了吗?
的确如此。通过查询polyv播放器官网的开发文档我们得知j2s_resumeVideo()函数便是视频的命令。
接下来我们通过开发者工具的conlse界面来运行这句命令.
视频便正常播放了,因此就可以达到我们多开网页而不触发焦点的目的。但是每次都要输入一下这句命令似乎有些麻烦?这里就引入了油猴。
使用
具体安装我就不再介绍,一般的,浏览器都可以在应用市场中搜索到油猴或者英其他*猴的插件。我使用的是chrome浏览器。
1.安装完毕后打开控制台。
2.点击加后再点击新建。
接下来就进入到了油猴编辑脚本的界面。
我们需要更改两句头文件,然后进行编写代码。
- @name,自己给脚本进行命名。
- @match,设置要在那些网址中运行脚本,网址不带http/https。 我在我要设置的链接后面加上了一个通配符*,代表匹配所有网址中包括*前的网址。
(这里需要删除默认的@match属性,我在编辑的时候忘记删除了。)
配置好之后便可以编写JavaScript代码,因为前面代码分析中我们得知:
window.onblur这个焦点监控器触发之后会执行将视频暂停的命令,那么我们在我们的脚本中将监控器执行的脚本设置为null,这样当触发监控器后并不会执行暂停的命令,这样我们要的目的便达成了。
自此,保存后脚本便编写完成。只要打开我们在match属性中设置的相应网址,便会运行我们的脚本。