开发浏览器扩展程序(js脚本)

2023-11-17

一、打开谷歌浏览器扩展程序

二、 打开 开发者模式

三、 加载已解压的扩展程序

四、选择编写好的脚本文件夹

看不到文件,没关系,默认会加载 manifest.json 文件

实际文件夹内容

五、 加载成功

 六、开始编辑脚本文件

①、name:扩展名字

②、description:扩展描述

③、default_icon:扩展icon图标

④、matches:执行脚本的网址,* 代表通配符

⑤、js:加载运行的 js 文件

{
  "name": "vpy",
  "manifest_version": 2,
  "version": "1.0",
  "description": "自动播放",
  "browser_action": {
    "default_icon": "1.png"
  },
  "permissions": ["tabs", "http://*/*", "https://*/*"],
  "content_scripts": [
    {
      "matches": ["http://网址/view.php?*"],
      "js": ["vpy.js"]
    }
  ]
}

七、vpy.js

// 封装暂停函数(一次性)
function suspend(time) {
  return new Promise((resolve) => {
    console.log('等待' + time / 1000 + '秒')
    setTimeout(() => {
      resolve('等待结束')
    }, time)
  })
}

window.onload = async () => {
  // 等待3秒
  console.log(await suspend(3000))

  // 获取所有专题
  var allSpecial = Array.from(document.getElementsByClassName('listinfo')[0].children)

  // 获取当前专题的标题前3个字符
  var nowTitle = document.getElementsByClassName('hidden-sm-down')[0].children[0].innerText.slice(0, 3)

  // 获取所有课程
  var allCoures = Array.from(document.getElementsByClassName('mlist')[0].children[0].children)

  // 获取视频按钮
  const videoBtn = document.getElementsByTagName('canvas')[0]

  // 判断是否有视频
  if (videoBtn) {
    videoBtn.click()
  } else {
    // 遍历所有课程
    allCoures.forEach((item, index) => {
      // 找到当前课程
      if (item.className == 'act') {
        // 判断是否最后一个课程
        if (index == allCoures.length - 1) {
          // 遍历所有专题
          allSpecial.forEach((item1, index1) => {
            // 找到当前专题
            if (item1.innerText.slice(0, 3) == nowTitle) {
              // 判断是否最后一个专题
              if (index1 == allSpecial.length - 1) {
                alert('完成毕业!')
              } else {
                // 点击下一个专题
                allSpecial[index1 + 1].click()
              }
            }
          })
        } else {
          // 点击下一个课程
          allCoures[index + 1].click()
        }
      }
    })
  }
}

注:个人理解就是浏览器执行 js 代码,只是经过 manifest.json 文件来引入;

先到此,后面再学习补充!

end

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开发浏览器扩展程序(js脚本) 的相关文章

随机推荐

  • CMD之拷贝文件夹

    左右无空格 SET srcdir protobuf IDL SET dstdir install proto Y 取消提示以确认要覆盖 E 复制目录和子目录 包括空目录 I 如果目标不存在 且要复制多个文件 则假定目标必须是目录 Q 复制时
  • ES6知识点总结一:const、let、箭头函数

    1 ES6常量及变量的声明const let ES6 新增了let命令来声明变量 const用来声明常量 ES6新增的let和const拥有 块级作用域 ES5只有 全局作用域 和 函数作用域 const与var区别 var声明的变量可以重
  • 如何将本地项目上传到git仓库中

    如何将本地项目上传到git仓库中 1 打开github 新建一个仓库用来存放项目 2 复制创建仓库链接 https github com WQ181 qiji git 3 找到要上传的项目文件 比如 qj consult就是我要上传到仓库上
  • python-turtle画图

    认识Turtle Turtle是一个渲染器 基于底层图形编程结构 API 构建 主要用于场景的构建以及3D物体的绘制 3D游戏 虚拟场景等 Turtle是一个窗体程序 Turtle是Python语言中的一个很流行的绘制图像的函数库 想象一个
  • js表单案例

    js表单案例 包括阻止提交的默认行为 添加节点操作以及删除节点操作等等
  • 逻辑思维训练1200题-蓝桥杯计算思维参考

    黑格尔曾说过 逻辑是一切思考的基础 逻辑思维能力强的人能迅速 准确地把握住问题的实质 面对纷繁复杂的事情能更容易找到解决的办法 逻辑思维训练1200 题 介绍了排除法 递推法 倒推法 作图法 假设法 计算法 分析法 类比法 推理法 判断法
  • 记录下:解决fatal error: sqlite3.h: No such file or directory

    编译sqlite3数据库c语言程序时出现fatal error sqlite3 h No such file or directory 找不到头文件的问题 原来是系统没有安装函数库 执行下面语句解决 sudo apt get install
  • Linux服务器上配置Jupyter并在后台运行

    使用工具 Xshell作为终端 Python3 版本 Xmanager打开Linux图形浏览器 第一步 安装Jupyter pip3 install i https pypi douban com simple jupyter 如果己安装好
  • 用户信息表(查询数据 、 修改密码 、 添加数据)

    效果 列表的数据 添加用户的效果 修改用户表
  • Excel读取返回List<Map>工具方法

  • cocos2d-x

    http www myexception cn operating system 1222879 html http www tuicool com articles zQ3Q7n http www myexception cn opera
  • 服装商城小程序制作:打造便捷购物体验和提升销售额的利器

    随着移动互联网的发展 服装商城小程序成为各大服装品牌推广销售的重要工具 它不仅能够为用户提供便捷的购物体验 还能帮助服装商城实现更高效的销售和管理 下面给大家介绍下服装商城小程序的优点以及制作流程 让您了解并充分利用这一利器 优点 便捷购物
  • 云端部署code-server

    code server下载地址 GitHub coder code server VS Code in the browser 操作环境 本文配置环境为 aliyun ECS Debian 11 5 准备工作 Xftp 阿里云ECS云服务器
  • 算法--吃火锅

    题目 和朋友一起吃火锅 有m个菜品 你的手速是n 即吃完一道菜 要经过时间n才能再去夹菜 任一菜品下锅后 都需要经过对应时间才能熟 过时就不可口了 怎样可以吃到最多的可口的菜 输入 第1行 菜品数量m 手速n 第2 m行 每行两个数字 第一
  • 所有的USB C 设备都需要CC芯片吗

    所有的DFP 如电源适配器 所有的DRP 如电脑 手机 平板 移动电源 所有需要检测DFP电流输出能力的UFP 所有支持PD的设备 都需要CC逻辑检测与端口控制芯片 换句话说 只有因为功耗较低而不需要检测电流能力的UFP U盘 耳机 鼠标等
  • 第五届蓝桥杯校内选拔赛试题java组_2014年第五届蓝桥杯国赛试题(JavaA组)

    1 结果填空 满分15分 2 结果填空 满分45分 3 代码填空 满分30分 4 程序设计 满分30分 5 程序设计 满分80分 6 程序设计 满分100分 1 标题 海盗分金币 有5个海盗 相约进行一次帆船比赛 比赛中天气发生突变 他们被
  • 【经典分割网络】网络+模块+数据集+实验结果(整理中。。

    KolektorSDD数据集中包 含了 50组电子换向器图片 其中每组包含 8张图 片以及对应的语义分割标签 图像宽均为 500像 素 高为 1 240 1 273像素 1 FCN 2 U net 3 PSPnet 4 deeplab 5
  • Kafka详解及面试常问问题

    Kafka 简介 Kafka 是一个分布式流式处理平台 这到底是什么意思呢 流平台具有三个关键功能 消息队列 发布和订阅消息流 这个功能类似于消息队列 这也是 Kafka 也被归类为消息队列的原因 容错的持久方式存储记录消息流 Kafka
  • Linux编译器gcc/g++

    目录 一 关于gcc g 程序翻译的过程 预处理 编译 汇编 链接 二 gcc的使用 gcc的常见命令 E S c 三 动静态库 四 make Makefile 一 关于gcc g 首先 在我们自己的云服务器中 运行gcc v g v如果能
  • 开发浏览器扩展程序(js脚本)

    一 打开谷歌浏览器扩展程序 二 打开 开发者模式 三 加载已解压的扩展程序 四 选择编写好的脚本文件夹 看不到文件 没关系 默认会加载 manifest json 文件 实际文件夹内容 五 加载成功 六 开始编辑脚本文件 name 扩展名字