【油猴脚本】00010 案例 Tampermonkey油猴脚本,动态渲染表格-添加提示信息框,HTML+Css+JavaScript编写

news2024/9/22 2:24:12

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕

共同探索软件研发!敬请关注【宝码香车】
csdngif标识

目录

  • 【油猴脚本】00010 案例 Tampermonkey油猴脚本,动态渲染表格-添加提示信息框,HTML+Css+JavaScript编写
  • 使用的库:
    • Bootstrap的Css库CDN:
    • Jquery库CDN:
    • Jquery的库easyuijs CDN:
  • 📚一、效果
  • 📚二、核心解析
    • 💡1.html:
    • 💡2.css:
    • 💡3.JavaScript:
  • 📚三、完整源代码,可以直接复制使用
    • ✍️JavaScript
  • 📚四、使用此代码的方法:


📚💡📝🗂️✍️🛠️💻🚀🎉🏗️🌐🖼️🔗📊👉🔖⚠️🌟🔐⬇️·正文开始⬇️·🎥😊🎓📩😺🌈🤝🤖📜📖📋🔍✅🧰❓📄📢📈 🙋1️⃣2️⃣3️⃣

【油猴脚本】00010 案例 Tampermonkey油猴脚本,动态渲染表格-添加提示信息框,HTML+Css+JavaScript编写

使用的库:

Bootstrap的Css库CDN:

https://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.css

Jquery库CDN:

 https://code.jquery.com/jquery-1.9.1.min.js

Jquery的库easyuijs CDN:

https://www.jeasyui.com/easyui/jquery.easyui.min.js

📚一、效果

描述


📚二、核心解析

💡1.html:

   <div class="msgWrap col-md-8">
      <div class="msgContent">
          <div class="loadMsg">添加提示1•••</div>
          <div class="loadMsg">添加提示1•••</div>
       </div>
    </div>

💡2.css:

  .msgWrap{
    padding:10px;
    margin-top:10px;
   }
   .msgContent{
    max-height:300px;
   }
   .msgContent{
    background:#000;
   }
   .loadMsg{
    color:#fff;
    width: fit-content;
    font-size: 16px;
    font-family: monospace;
    clip-path: inset(0 3ch 0 0);
    animation: loadMsgAni 1s steps(4) infinite;
   }
   @keyframes loadMsgAni {to{clip-path: inset(0 -1ch 0 0)}}

💡3.JavaScript:

  //提示信息框
  function msg(msgStr){
    let msgHtml = ` <div class="loadMsg">${msgStr}•••</div>`
    $('.msgWrap .msgContent').append(msgHtml)

  }
  msg('111')

📚三、完整源代码,可以直接复制使用

✍️JavaScript

// ==UserScript==
// @name         动态渲染表格-实现页面动态-添加提示信息框
// @namespace    http://tampermonkey.net/
// @version      2024-09-12
// @description  动态渲染表格
// @author       CSDN@宝码香车
// @match        https://developer.mozilla.org/zh-CN/
// @match       https://www.zhipin.com/web/geek/job?query=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91%E5%B7%A5%E7%A8%8B%E5%B8%88&city=101120900&areaBusiness=371329&page=1
// @resource bootstrapCss https://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.css
// @require      https://code.jquery.com/jquery-1.9.1.min.js
// @require      https://www.jeasyui.com/easyui/jquery.easyui.min.js
// @grant        GM_addStyle
// @grant        GM_getResourceText
// @run-at       document-end
// ==/UserScript==


(function () {
  'use strict';

  let tableHtml = `
    <div class="col-md-8 table-card" style="padding:1em;">
     <div id="draggableArea">拖拽这里移动表格</div>
      <div  class="toolsArea">
       <span id="editCols" class="editCols">编辑表格-列</span>
      </div>
      <div class="table-responsive">
       <table class="table table-bordered table-striped" id="test_table">
       </table>
     </div>
       <div class="msgWrap col-md-8">
          <div class="msgContent">
             <div class="loadMsg">添加提示1•••</div>
             <div class="loadMsg">添加提示1•••</div>
          </div>
       </div> 
    </div>
    `
  let cssMore = `
   #draggableArea,.toolsArea{padding:10px;background:#f5f5f5;}
   .table-card{
    position:fixed;
    left:100px;
    top:150px;
    z-index:100;
    background:#fff;
    box-shadow: 0px 0px 0 10px #E95C8A;
   }
   .editCols{
    padding: 2px 5px;background:#f5f5f5;
   }
   .modal-body{
    height:300px;
    overflow-y: scroll;
   }
   .msgWrap{
    padding:10px;
    margin-top:10px;
   }
   .msgContent{
    max-height:300px;
   }
   .msgContent{
    background:#000;
   }
   .loadMsg{
    color:#fff;
    width: fit-content;
    font-size: 16px;
    font-family: monospace;
    clip-path: inset(0 3ch 0 0);
    animation: loadMsgAni 1s steps(4) infinite;
   }
   @keyframes loadMsgAni {to{clip-path: inset(0 -1ch 0 0)}}
  `
  let bsCss = GM_getResourceText('bootstrapCss')
  GM_addStyle(bsCss)
  GM_addStyle(cssMore)
  $('body').append(tableHtml)

  $('.table-card').draggable({
    handle: '#draggableArea'
  })

  // 初始化列
  const initCols = (strArr)=>{
    let addTableHtml = `<thead><tr>`
    for (const x of strArr) {
      addTableHtml += `<td>${x}</td>`;
    }
    addTableHtml += `</tr></thead>`;
    addTableHtml += '<tbody><tr>'
    for (const y of strArr) {
      addTableHtml += `<td>默认无值</td>`;
    }
    addTableHtml += `</tr></tbody>`
    return addTableHtml
  }
  //定义表格列
  let tableColsArr = ['姓名','省份','城市','性别','职业','年龄']
  let initColHtml = initCols(tableColsArr)
  // 把动态渲染的表格内容,添加到页面中的table位置
  $('#test_table').html(initColHtml);

  //弹出框,编辑表格-列
  let editTableCols = `
  <div class="modal" id="editTableColsModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
      <div class="modal-dialog" role="document">
          <div class="modal-content">
              <div class="modal-header">
                <h4 class="modal-title" id="myModalLabel">编辑表格-列</h4>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true" class="colseBtn">&times;</span></button>
              </div>
              <form class="modal-body">
              </form>
              <div class="modal-footer">
                  <button type="button" id="btn_addCol" class="btn btn-primary" style="float: left" data-dismiss="modal">添加一列</button>
                  <button type="button" class="btn btn-default colseBtn" data-dismiss="modal">关闭</button>
                  <button type="button" id="btn_submit" class="btn btn-primary" data-dismiss="modal">保存</button>
              </div>
          </div>
      </div>
  </div>
  `
  //动态渲染列
  const colsRender = (optionStr)=>{
    let str = `
    <div class="form-group">
       <div class="item">
         <span>列名称:</span><span class="delCol" style="margin-left: 20px;cursor:pointer;">删除此列</span><input type="text"  class="form-control"  value="${optionStr}"> 
      </div>
    </div>
    `
    return str;
  }

  //动态渲染多列函数
  const colsMoreRender = (strArrOpt)=>{
    let str = ''
    for(const x of strArrOpt){
      str += colsRender(x)
    }
    return str;
  }

  //渲染多列
  let colsMoreStr = colsMoreRender(tableColsArr)
  $('body').append(editTableCols); //弹出窗口添加到页面中
  $('#editTableColsModal .modal-body').html(colsMoreStr)

  //获取修改的数据
  const getFormData = ()=>{
    let strArr = []
    $('#editTableColsModal .modal-body .form-group input').each(function(idx,eleItm){
      let formName = $(eleItm).val();
      strArr.push(formName)
    })
    return strArr;
  }

  // 点击-编辑列按钮
  $("#editCols").click(function(){
    $('#editTableColsModal').show() //打开弹出窗口
  })
  // 点击-关闭按钮
  $(".colseBtn").click(function(){
    $('#editTableColsModal').hide() //关闭弹出窗口
  })
  // 点击-保存按钮
  $("#btn_submit").click(function(){
    let editData = $('#txt_name').val(); //获取编辑的数据
    $('#editTableColsModal').hide() //关闭弹出窗口
    let renderColHtml = initCols(getFormData())
    //渲染到页面上
    $('#test_table').html(renderColHtml);
  })

  //表格-删除列事件函数
  $(".modal-body").on('click','.delCol',function(){
    console.log($(this).parents('.form-group'))
    if($('.form-group').length === 1){
      alert('至少保留一个列')
      return false;
    }
    $(this).parents('.form-group').remove();
  })

  //添加一列的点击事件
  $('#btn_addCol').on('click',function(){
    $('.modal-body').append(colsRender('新列请重新命名'))
  })

  //提示信息框
  function msg(msgStr){
    let msgHtml = ` <div class="loadMsg">${msgStr}•••</div>`
    $('.msgWrap .msgContent').append(msgHtml)

  }
  msg('111')
 



  // Your code here...
})();

📚四、使用此代码的方法:

1.浏览器打开https://developer.mozilla.org/zh-CN/
2.把代码复制进油猴脚本,打开运行开关,刷新页面

  • 安装教程:👉 https://blog.csdn.net/qq_33650655/article/details/142097760
  • 使用教程:👉 https://blog.csdn.net/qq_33650655/article/details/142183047

到此这篇文章就介绍到这了,更多精彩内容请关注本人以前的文章或继续浏览下面的文章,创作不易,如果能帮助到大家,希望大家多多支持宝码香车~💕,若转载本文,一定注明本文链接。


整理不易,点赞关注宝码香车

更多专栏订阅推荐:
👍 html+css+js 绚丽效果
💕 vue
✈️ Electron
⭐️ js
📝 字符串
✍️ 时间对象(Date())操作

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

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

相关文章

Ubuntu 22.04 源码下载、编译

Kernel/BuildYourOwnKernel - Ubuntu Wikihttps://wiki.ubuntu.com/Kernel/BuildYourOwnKernel 一、查询当前系统内核版本 rootubuntu22:~# uname -r 5.15.0-118-generic 二、查询本地软件包数据库中的内核源码信息 rootubuntu22:~# apt search linux-source Sorting... Do…

Unity实现原始的发射子弹效果

1 创建一个炮塔&#xff0c;按下空格-坦克会发射一个小球2.小球会掉在地上滚下来-添加组件3 间隔几秒后自动销毁程序逻辑&#xff1a;1.在场景中创建一个炮塔\子弹拿到代码里的变量里程序逻辑&#xff1a; 2.if语句检测用户有没有按下空格程序逻辑&#xff1a; 3.在炮塔坐标的位…

5. 数字证书与公钥基础设施

5. 数字证书与公钥基础设施 (1) PKI 的定义、组成及应用 PKI(Public Key Infrastructure,公钥基础设施) 是一个使用公钥技术来提供安全服务的框架。它定义了如何管理和维护公钥,以及如何通过证书来验证公钥的真实性。PKI的核心组成部分包括: 证书颁发机构(CA, Certifica…

(done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)

来源&#xff1a;https://www.youtube.com/watch?vdaB9naGBVv4 模拟信号特点如下 时域连续(x轴) 振幅连续(y轴) 如下是模拟信号的一个例子&#xff1a; 数字信号特点如下&#xff1a; 一个离散值序列 数据点的值域是一系列有限的值 ADC&#xff1a;模拟信号到数字信号的…

Elionix 电子束曝光系统

Elionix 电子束曝光系统 - 上海纳腾仪器有限公司 -

Python包、模块、库辨析

目录 1 模块的基础介绍 2 包的概念解析 3 库的定义与作用 4 区分三者 5 实例 __init__.py addition.py multiplication.py main_scipt 1 模块的基础介绍 模块是 Python 编程的基本组成部分之一&#xff0c;它是单个文件 &#xff0c;包含 Python 代码&#xff0c;可以定…

GB28181协议接入SVMSPro平台

国标28181协议接入SVMSPro平台 步骤一&#xff1a;海康摄像机28181配置&#xff1b;登录海康摄像机网页进配置选项&#xff0c;左边选网络-高级设置-平台接入-类型选28181 勾选启用&#xff0c;28181协议版本选最新2016 SIP服务器ID:默认20位 34020000002000000001,也可在服务端…

Linux系统网络诊断工具MTR使用方法

我们一般做linux系统服务器测评的时候&#xff0c;基本都会进行网速方面的测试&#xff0c;这方面的脚本工具啥的有很多&#xff0c;其中MTR是Linux平台上一款非常好用的网络诊断工具&#xff0c;集成了traceroute、ping、nslookup的功能&#xff0c;用于诊断网络状态非常有用。…

胤娲科技:谷歌DeepMind祭出蛋白质设计新AI——癌症治疗迎来曙光

在科技的浩瀚星空中&#xff0c;DeepMind的“阿尔法”家族总是能带来令人瞩目的璀璨光芒。这一次&#xff0c;它们再次以惊人的姿态&#xff0c; 将AI的触角深入到了生命的微观世界——蛋白质设计领域&#xff0c;为我们描绘了一幅未来医疗的宏伟蓝图。 想象一下&#xff0c;一…

思通数科开源产品:免费的AI视频监控卫士安装指南

准备运行环境&#xff1a; 确保您的服务器或计算机安装了Ubuntu 18.04 LTS操作系统。 按照产品要求&#xff0c;安装以下软件&#xff1a; - Python 3.9 - Java JDK 1.8 - MySQL 5.5 - Redis 2.7 - Elasticsearch 8.14 - FFmpeg 4.1.1 - RabbitMQ 3.13.2 - Minio &#xff08;…

网络丢包定位记录(三)

网络IP层丢包 接口ip地址配置丢包 1. 本机服务不通&#xff0c;检查lo接口有没有配置地址是127.0.0.1&#xff1b; 2 .本机接收失败&#xff0c; 查看local路由表&#xff1a;ip r show table local|grep 子机ip地址&#xff1b;这种丢包一般会出现在多IP场景&#xff0c;子…

robomimic应用教程(一)——模型训练

Robomimic使用集中式配置系统来指定所有级别的(超)参数 本文介绍了配置&#xff08;推荐&#xff09;和启动训练运行的两种方法 目录 一、使用config json&#xff08;推荐&#xff09; 二、在代码中构造一个配置对象 三、查看运行结果 1. 实验结果会存在一个固定文件夹中…

S-Clustr-Simple 飞机大战:骇入现实的建筑灯光游戏

项目地址:https://github.com/MartinxMax/S-Clustr/releases Video https://www.youtube.com/watch?vr3JIZY1olro 飞机大战 这是一个影子集群的游戏插件&#xff0c;可以将游戏画面映射到现实的设备&#xff0c;允许恶意控制来完成游戏。亦或者设备部署在某建筑物中,来控制…

超实用的 Typora 插件

&#x1f33c;&#x1f4da;Typora 是一款高效、易用且跨平台的 Markdown 编辑器和阅读器&#xff0c;其具有小巧、快速、实时预览等特点&#xff0c;非常受大家的欢迎。今天给大家推荐一款如虎添翼的 Typora 插件(Typora Plugin)&#xff0c;它可以通过插件增强 Typora 的功能…

C++入门(03)萌新问题多(二)

文章目录 1. VS2022 控制台输出中文时&#xff0c;变成了一堆“&#xff1f;”1.1 字体、语言设置1.2 在程序中指定控制台编码1.3 修改注册表&#xff08;只能说试试吧&#xff09; 1. VS2022 控制台输出中文时&#xff0c;变成了一堆“&#xff1f;” 问题如下&#xff0c;Vi…

解决uniapp开发的app,手机预览,上下滑动页面,页面出现拉伸,抖动的效果问题,

在pages.json文件里“globalStyle”下面的"app-plus"里加入"bounce": "none"即可 "app-plus": { "bounce": "none", //关闭窗口回弹效果 }

[Leetcode] 227.基本计算器

标题&#xff1a;[Leetcode] 227.基本计算器 个人主页&#xff1a;水墨不写bug &#xff08;图片来源于网络&#xff09; // _ooOoo_ // // o8888888o // // …

linux 获取指定端口的PID netsat awk

使用netstat -ntpl 获取指定端口的PID #获取端口19000对应的PID netstat -ntpl | grep 19000 | awk {print $NF} | awk -F/ {print $1}

vcs/verdi常用命令(持续更新)

1. 操作rtl 1.1 加载rtl命令 verdi -dbdir simv.daidir的目录 1.2 显示某时刻rtl的值 首先鼠标左键在波形上选中某个特定时刻&#xff0c;然后鼠标选中rtl代码文件&#xff0c;按x就会显示&#xff0c;再按x就会退出显示。 1.3 查找字符串 按/ 1.4 vcs将rtl的信号加载到…

mockito+junit搞定单元测试(2h)

一&#xff0c;简介 1.1 单元测试的特点 配合断言使用(杜绝 System.out )可重复执行不依赖环境不会对数据产生影响spring 的上下文环境不是必须的一般都需要配合 mock 类框架来实现 1.2 mock 类框架使用场景 要进行测试的方法存在外部依赖(如 db, redis, 第三方接口调用等)…