油猴脚本教程案例【长按元素】- 哔哩哔哩一键三连

文章目录

  • 1. 元数据
  • 2. 编写函数
    • 2.1 关键函数
    • 2.2 完整代码
  • 3. 验证和调试
    • 3.1 效果演示
  • 4. 可能遇到的问题和解决方法
  • 5. 结语

1. 元数据

在编写油猴脚本时,首先需要设置一些元数据,包括脚本的名称、命名空间、版本、描述等信息。以下是本脚本的元数据部分:

// ==UserScript==
// @name         bilibili一键三连脚本
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  点击按钮实现一键三连脚本
// @author       D0ublecl1ck
// @match        https://www.bilibili.com/video/*
// @match        https://www.bilibili.com/list/*
// @icon         https://static.hdslb.com/mobile/img/512.png
// @grant        GM_addStyle
// ==/UserScript==
  • name: 脚本的名称,这里是 “bilibili一键三连脚本”。
  • namespace: 命名空间,一般使用默认值。
  • version: 脚本版本号,初始版本为 “0.1”。
  • description: 脚本的描述,简要介绍了脚本的功能。
  • author: 脚本作者,这里是 “D0ublecl1ck”。
  • match: 脚本运行的网页地址,匹配Bilibili视频和列表页。
  • icon: 脚本图标的URL。
  • grant: 油猴脚本所需的额外权限,这里使用了 GM_addStyle

2. 编写函数

2.1 关键函数

 longPressElement(targetElement, 3000);// 2.4 长按指定元素function longPressElement(element, duration) {// 创建 mousedown(鼠标按下) 事件const pressEvent = new Event('mousedown');// 创建 mouseup(鼠标释放) 事件const releaseEvent = new Event('mouseup');// 触发鼠标按下事件element.dispatchEvent(pressEvent);// 延时一定时间后触发鼠标释放事件,模拟长按setTimeout(() => {element.dispatchEvent(releaseEvent);}, duration);}

2.2 完整代码

接下来,我们将编写代码逻辑

(function () {'use strict';// 2.1 创建悬浮窗function createFloatingWindow() {// 创建一个 div 元素作为悬浮窗const floatingWindow = document.createElement('div');// 设置悬浮窗的样式floatingWindow.id = 'floating-window';floatingWindow.style.position = 'fixed';floatingWindow.style.bottom = '20px';floatingWindow.style.left = '20px';floatingWindow.style.padding = '10px';floatingWindow.style.zIndex = '9999';floatingWindow.style.background = '#ffffff';floatingWindow.style.border = '1px solid #cccccc';floatingWindow.style.padding = '10px';floatingWindow.style.boxShadow = '0 0 10px rgba(0, 0, 0, 0.1)';// 将悬浮窗添加到页面中document.body.appendChild(floatingWindow);// 2.2 创建按钮const button = document.createElement('button');button.textContent = '一键三连';button.style.marginRight = '10px';// 添加按钮点击事件监听器button.addEventListener('click', handleButtonClick);// 将按钮添加到悬浮窗中floatingWindow.appendChild(button);}// 2.3 处理按钮点击事件function handleButtonClick() {// 查找页面中类名为 'video-like' 且属于 'video-toolbar-left-item' 的元素const targetElement = document.querySelector('.video-like.video-toolbar-left-item');// 如果找到目标元素if (targetElement) {// 调用长按指定元素的函数,长按时间为 3000 毫秒(3秒)longPressElement(targetElement, 3000);} else {// 如果未找到目标元素,输出错误信息到控制台console.error('未找到目标元素');}}// 2.4 长按指定元素function longPressElement(element, duration) {// 创建 mousedown(鼠标按下) 事件const pressEvent = new Event('mousedown');// 创建 mouseup(鼠标释放) 事件const releaseEvent = new Event('mouseup');// 触发鼠标按下事件element.dispatchEvent(pressEvent);// 延时一定时间后触发鼠标释放事件,模拟长按setTimeout(() => {element.dispatchEvent(releaseEvent);}, duration);}// 2.5 初始化脚本,调用创建悬浮窗的函数createFloatingWindow();})();

3. 验证和调试

在安装油猴脚本之前,我们需要确认已经安装了油猴插件,并且在支持的浏览器中打开了Bilibili视频或列表页。然后,按照以下步骤验证和调试脚本:

  • 打开浏览器,确保已经安装了油猴插件。

  • 打开Bilibili视频或列表页。

  • 右键单击油猴图标,选择 “管理面板”。

  • 在管理面板中,选择 “已安装的脚本”。

  • 确保 “bilibili一键三连脚本” 被正确列出,并且启用状态为 “启用”。

  • 刷新Bilibili页面。

  • 点击页面左下角的悬浮窗按钮,观察是否正确显示并且按钮点击是否触发一键三连。

3.1 效果演示

在这里插入图片描述

4. 可能遇到的问题和解决方法

如果脚本在验证过程中遇到问题,可以尝试以下解决方法:

  • 浏览器兼容性: 确保你使用的浏览器支持油猴插件,并且插件已经正确安装。

  • 脚本错误: 检查脚本中的语法错误或拼写错误。在浏览器的开发者工具中查看控制台输出,寻找错误信息。

  • 元素选择器问题: 如果脚本无法找到目标元素,可能是选择器不正确。使用浏览器的开发者工具检查页面结构,并更新选择器。

5. 结语

通过本教程,你学会了如何编写简单的油猴脚本,实现了在Bilibili上一键三连的功能。希望这个教程对于零基础的用户也能够容易理解。如果在使用过程中遇到问题,可以查看油猴插件的文档或在评论区寻求帮助。祝你编写更多实用的脚本!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/237528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式

之前写过使用自定义返回类的方式来统一接口数据返回格式,.Net Core webapi RestFul 统一接口数据返回格式-CSDN博客 但是这存在一个问题,不是所有接口会按照定义的数据格式返回,除非每个接口都返回我们自定义的类,这种实现起来不…

106 uni-app 小程序之巨坑 not found path,not found methods v-for渲染出现报错

1.Component is not found in path 你是否像我一样,检查了无数遍,引入路径检查千万遍,就是没写错,小程序后台就是给你报错, 不用慌,心里默念:我不能砸电脑,我不能砸电脑&#xff0…

主流数据库体系结构

MySQL 我们通常所说的 MySQL 数据库服务器由一个实例(instance)以及一个数据库(database)组成。实例包括一组后台进程/线程和许多内存结构,用于管理数据库;数据库由一组磁盘文件组成,用于存储数…

基于FPGA的简易BPSK和QPSK

1、框图 2、顶层 3、m_generator M序列的生成,输出速率为500Kbps 4、S2P是串并转换模块 将1bit的m序列转换到50M时钟下的2bit M序列数据(就有4个象限); 5、my_pll是生成256M的时钟作为载波,因为sin和cos信号的…

论文阅读<MULTISCALE DOMAIN ADAPTIVE YOLO FOR CROSS-DOMAIN OBJECT DETECTION>

论文链接:https://arxiv.org/pdf/2106.01483v2.pdfhttps://arxiv.org/pdf/2106.01483v2.pdf 代码链接:GitHub - Mazin-Hnewa/MS-DAYOLO: Multiscale Domain Adaptive YOLO for Cross-Domain Object DetectionMultiscale Domain Adaptive YOLO for Cross…

Postgresql源码(118)elog/ereport报错跳转功能分析

1 日志接口 elog.c完成PG中日志的生产、记录工作,对外常用接口如下: 1.1 最常用的ereport和elog ereport(ERROR,(errcode(ERRCODE_UNDEFINED_TABLE),errmsg("relation \"%s\" does not exist",relation->relname)));elog(ERRO…

文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络

文献速递:生成对抗网络医学影像中的应用—— CG-3DSRGAN:用于从低剂量PET图像恢复图像质量的分类指导的3D生成对抗网络 本周给大家分享文献的主题是生成对抗网络(Generative adversarial networks, GANs)在医学影像中的应用。文献…

JFreeChart 生成图表,并为图表标注特殊点、添加文本标识框

一、项目场景: Java使用JFreeChart库生成图片,主要场景为将具体的数据 可视化 生成曲线图等的图表。 本篇文章主要针对为数据集生成的图表添加特殊点及其标识框。具体包括两种场景:x轴为 时间戳 类型和普通 数值 类型。(y轴都为…

【AI美图】第09期效果图,AI人工智能汽车+摩托车系列图集

期待中的未来AI汽车 欢迎来到未来的世界,一个充满创新和无限可能的世界,这里有你从未见过的科技奇迹——AI汽车。 想象一下,你站在十字路口,繁忙的交通信号灯在你的视线中闪烁,汽车如潮水般涌来,但是&…

Layui 2.9.2 列表商品展示页 用模板引擎 laytpl Ajax 读取json 数据 筛选数组 filter css 限制文体显示过长用。。。代替

全代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>软件管理器</title><meta name"renderer" content"webkit"><meta http-equiv"X-UA-Compatible" conten…

Graylog配置日志保留策略

找了半天没找到说的清楚的&#xff0c;只能抠官方文档 graylog的归档&#xff08;日志持久化&#xff09;只有付费版才能用&#xff0c;所以日志只能存在es中 1.理解官方给出的几个概念 轮转策略 (Index Rotation Strategy): 轮转策略定义了何时创建新的索引以及何时关闭旧的索…

pytorch-模型预测概率值为负数

在进行ocr识别模型预测的时候&#xff0c;发现预测的结果是正确的&#xff0c;但是概率值是负数&#xff1a; net_out net(img) #torch.Size([70, 1, 41]) logit, preds net_out.max(2) #41是类别 需要对类别取最大值 preds preds.transpose(1, 0).contiguous().view(-1) …

Win10安装Gogs保姆级教程

什么是 Gogs? Gogs 是一款极易搭建的自助 Git 服务。 开发目的 Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发&#xff0c;并且支持 Go 语言支持的 所有平台&#xff0c;包括 Linux、Mac OS X…

微软官方出品:GPT大模型编排工具,支持C#、Python等多个语言版本

随着ChatGPT的火热&#xff0c;基于大模型开发应用已经成为新的风口。虽然目前的大型模型已经具备相当高的智能水平&#xff0c;但它们仍然无法完全实现业务流程的自动化&#xff0c;从而达到用户的目标。 微软官方开源的Semantic Kernel的AI编排工具&#xff0c;就可以很好的…

C语言struct,union内存对齐

测试环境&#xff1a; #include<stdio.h> int main(){//1字节对齐struct XXX{unsigned char ch;unsigned int in;unsigned short si;}__attribute__((packed));struct XXX xxx;printf("%zd\n",sizeof(xxx));//7#pragma pack(1)struct YYY{unsigned char ch;u…

057:vue组件方法中加载匿名函数

第057个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

CSS:元素显示模式与背景

CSS&#xff1a;元素显示模式与背景 元素显示模式什么是元素显示模式块级元素 block行内元素 inline行内块元素 inline-block元素显示模式对比元素显示模式转换 display 背景背景颜色 background-color背景图片 background-image背景平铺 background-repeat背景图片位置 backgr…

恶意软件样本行为分析——Process Monitor和Wireshark

1.1 实验名称 恶意软件样本行为分析 1.2 实验目的 1) 熟悉 Process Monitor 的使用 2) 熟悉抓包工具 Wireshark 的使用 3) VMware 的熟悉和使用 4) 灰鸽子木马的行为分析 1.3 实验步骤及内容 第一阶段&#xff1a;熟悉 Process Monitor 的使用 利用 Process …

Linux笔记---文件和目录操作

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux学习 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 命令 ls (List): pwd (Print Working Directory): cp (Copy): mv (Move): rm (Remove): 结语 我的其他博客 前言 学习Linux命令…