JS小应用:从图床获取的html代码中提取IMG标签并提取图片复制到剪贴板

JS小应用:从图床获取的html代码中提取IMG标签并提取图片复制到剪贴板

问题产生

自己做站长,为了节省银子,难免要用到图床。有的图床可以直接给你URL,这当然是最好的情况:

而有的图床,却禁用了鼠标右键,甚至复制一张图片地址的机会都不给(偏偏它其他的功能还挺好,你又舍不得放弃它),它给的:

这时候就比较烦了。所以,我自己写了一段js来把自己解放出来。

需求功能

它实现下面几个功能:

  1. 从HTML代码中提取到IMG的URL;
  2. 把上一步获得的IMG的URL直接封成img标签;
  3. 获得图片;
  4. 把图片批量复制到剪贴板。

这样,在网页后台编辑文件时候,我就可以点几下鼠标,最后按下ctrl+v,就完成图片批量插入到文章里了。。。

解决问题

HTMl结构

<div class="container"><h1>从HTML代码中提取IMG地址并逐行输出</h1><textarea id="Input" rows="6" cols="50" placeholder="把你的图床链接粘帖在这里..."></textarea>    <button class="base" onclick="extractImgUrls()">提取图片URLs</button><button class="base" onclick="cleardiv('Input')" >清空HTML</button><textarea id="output" cols="200" rows="5"> 提取后的IMG URLs 会显示在这里         </textarea>            <button class="base" onclick="copyDivContentToClipboard('output');">复制URLs</button><button class="base" onclick="cleardiv('output')" >清空URLs</button><button class="base" onclick="insertimg()">获得图片</button>    <button class="base" onclick="copyDivContentToClipboard('inserted-images')">复制图片</button><button class="base" onclick="cleardiv('inserted-images')" >清空图片</button><div id="inserted-images"></div>
</div>

JS代码


// 提取IMG的URLs
function extractImgUrls() {var htmlInput = document.getElementById('Input').value;var imgTags = htmlInput.match(/<img\s+[^>]*src="([^"]*)"/gi);var imgSrcs = [];if (imgTags) {imgTags.forEach(function(tag) {var srcMatch = tag.match(/src="([^"]*)"/);if (srcMatch) {imgSrcs.push(srcMatch[1]);}});}var outputDiv = document.getElementById('output');outputDiv.value = ''; // 清空现有内容imgSrcs.forEach(function(src, index) { var imgLine = src + '\n';outputDiv.value += imgLine;});if (imgSrcs.length === 0) {outputDiv.value = '没有找到IMG地址 (⊙︿⊙)';}
}// 获得图片标签,形如 <img src='' />,并将图片输出到指定div中function insertimg() {  event.preventDefault();var urls = document.getElementById("output").value.split("\n");var insertedImagesDiv = document.getElementById("inserted-images");     urls.forEach(function(url) {var img = document.createElement("img");img.src = url;       insertedImagesDiv.appendChild(img);});
}// 清除指定元素的值
function cleardiv(targetId){var target = document.getElementById(targetId);target.innerHTML = ""; target.value = ""; 
}// 复制xxx到粘贴板
function copyDivContentToClipboard(divId) {// 获取div元素var div = document.getElementById(divId);if (!div) {return;}// 创建一个新的临时div来持有要复制的内容var tempDiv = document.createElement("div");tempDiv.style.position = "absolute";tempDiv.style.left = "-10000px";tempDiv.appendChild(div.cloneNode(true));document.body.appendChild(tempDiv);// 选中内容var selection = window.getSelection();var range = document.createRange();range.selectNodeContents(tempDiv);selection.removeAllRanges();selection.addRange(range);// 复制到剪贴板var successful = false;try {successful = document.execCommand('copy');} catch (err) {alert('Oops, unable to copy');}// 移除临时divdocument.body.removeChild(tempDiv);if (successful) {alert('已复制到剪贴板');}
}

代码比较简陋,但够用就好,有更好的建议的同学,欢迎给我留言啊~~。本例,就在本地用,没有考虑到乱七八糟的输入测试,也不知道有没有人需要。反正,我自己是很需要的。我把代码放在下载区了,不想自己复制又有需要的朋友,可以点这里下载:从图床获取的html代码中提取IMG标签并提取图片复制到剪贴板

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

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

相关文章

Null Pointer Exception: 如何快速定位和修复?️

Null Pointer Exception: 如何快速定位和修复&#xff1f;&#x1f4a1;&#x1f6e0;️ Null Pointer Exception: 如何快速定位和修复&#xff1f;&#x1f4a1;&#x1f6e0;️摘要引言正文内容什么是Null Pointer Exception&#xff1f;&#x1f914;NPE的常见原因&#x1f…

3D魔方lua核心脚本制作

制作不易,请好好欣赏 U→R→F→D→L→B 废话不多说,上脚本 --魔方基本运行程序 --星空露珠优化脚本lua --主核心来自分享 --666 --[=[ #G4=I 1 # 2-----------2------------1 # | U1(0) U2(1) U3(2) | # …

Java中的集合相关知识汇总

总结 Java集合 从数据结构可以分为&#xff1a;数组、Set、Map、队列、栈&#xff1b;从多线程安全可以分为线程安全与非线程安全的集合从关联关系可以总结如下(不包含多线程安全类)&#xff1a; 点线框表示接口&#xff1b; 折线框表示抽象类&#xff1b; 实线框表示实现类…

【只出现一次的数字 III】python刷题记录

R2-位运算专题. 目录 哈希表 位运算 ps: 一眼哈希表啊 哈希表 class Solution:def singleNumber(self, nums: List[int]) -> List[int]:dictdefaultdict(int)ret[]for num in nums:dict[num]1for key in dict.keys():if dict[key]1:ret.append(key)return ret怎么用位…

[C++][STL源码剖析] 详解AVL树的实现

目录 1.概念 2.实现 2.1 初始化 2.2 插入 2.2.1 旋转&#xff08;重点&#xff09; 左单旋 右单旋 双旋 2.❗ 双旋后&#xff0c;对平衡因子的处理 2.3 判断测试 完整代码&#xff1a; 拓展&#xff1a;删除 1.概念 二叉搜索树虽可以缩短查找的效率&#xff0c;但…

Jeecgboot仪表盘设计器使用https时访问报错

问题 仪表盘设计器设计好后&#xff0c;Nginx配置域名发送https请求时&#xff0c;/drag/page/queryById、/drag/page/addVisitsNumber仍发送http请求。导致发送下面错误&#xff1a; 原因 仪表盘设计器里设计的页面是由后端生成返回给前端的&#xff0c;后端是根据后端服…

java算法day27

java算法day27 动态规划初步总结509 斐波那契数杨辉三角打家劫舍完全平方数 动态规划初步总结 如果你感觉某个问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。 动态规划的过程就是每一个状态一定是由上一个状态推导出来的&#xff0c;这一点就区分于贪心了。贪心是…

mysql死锁排查

Mysql 查询是否存在锁表有多种方式&#xff0c;这里只介绍一种最常用的 1、查看正在进行中的事务 SELECT * FROM information_schema.INNODB_TRX 2、查看正在锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 3、查看等待锁的事务 SELECT * FROM INFORMATION_SCHEMA.I…

视频VIP收费会员播放帝国CMS模板HTML5自适应手机多种运营模式

采用帝国CMS最新版核心制作&#xff0c;自适应响应式手机平板浏览&#xff0c;手机浏览器非常舒服哦&#xff01;多种运营模式。用户中心逻辑和页面&#xff0c;都已经制作完整&#xff0c;可以搭建后稍微修改即可使用&#xff01; 模板特点&#xff1a; 支持多集和单集播放&…

Kafka动态授权认证:利用SASL/SCRAM机制提升安全性

摘要 Apache Kafka是一个流行的分布式流处理平台&#xff0c;其安全性对于保护数据传输至关重要。SASL/SCRAM&#xff08;Simple Authentication and Security Layer/Salted Challenge Response Authentication Mechanism&#xff09;是一种认证机制&#xff0c;可以为Kafka集…

从华为出走的工控龙头,豪横收购法国顶尖软件龙头~

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 近日&#xff0c;业界传来震撼消息&#xff0c;华为系企业汇川科技正式宣布&#xff0c;已完成对法国顶尖工业软件企业Irai的全资收购。 这一战略…

【LLM】-12-部署Langchain-Chatchat-0.3.x版本

目录 1、0.3与0.2的功能对比 2、0.3.x支持多种部署方式 2.3、源码安装 2.3.1、项目源码下载 2.3.2、创建conda环境 2.3.3、安装poetry 2.3.4、安装依赖库 2.3.5、项目初始化 2.3.6、初始化知识库 2.3.7、启动服务 2.3.8、配置说明 2.3.8.1、basic_settings.yaml 2…

一馆多用,四季皆宜:气膜体育馆的优势与应用—轻空间

促进城市体育发展 装配式气膜体育馆以其便捷的安装、灵活的使用和多功能性&#xff0c;迅速在全国范围内得到推广。这种体育场馆不仅适用于篮球、羽毛球、网球等传统室内运动&#xff0c;还能根据需要灵活改造成游泳馆、滑冰场等特殊场地。这种多功能性使得气膜体育馆在城市中得…

甄选范文“论数据分片技术及其应用”软考高级论文,系统架构设计师论文

论文真题 数据分片就是按照一定的规则,将数据集划分成相互独立、正交的数据子集,然后将数据子集分布到不同的节点上。通过设计合理的数据分片规则,可将系统中的数据分布在不同的物理数据库中,达到提升应用系统数据处理速度的目的。 请围绕“论数据分片技术及其应用”论题…

【ThingsBoard初体验】本地运行源码踩坑记录

前言 运行源码之前&#xff0c;请先编译源码。这很重要&#xff01;&#xff01;&#xff01; 官网源码编译教程&#xff1a;http://www.ithingsboard.com/docs/user-guide/contribution/yuanmabianyi/ 如果编译过程中出现报错&#xff0c;请看我上一篇文章&#xff1a;【Thing…

使用ssh-remote连接远程vscode运行yolo项目时的一点坑

使用ssh-remote连接远程vscode运行yolo项目时的一点坑 1.坑1 因为我是直接下载的release包&#xff0c;然后运行 pip install -e .来下载依赖的&#xff0c;那么这个时候需要使用YOLO时都需要在下载的release文件的目录下的py文件才能生效 比方说我下载的yolov8(ultralytic…

从功能出发:优化超市商品陈列,助力销售额提升

随着时代的发展&#xff0c;竞争的加剧&#xff0c;人们的生活节奏加快&#xff0c;时间观念越来越强。在这种情形下&#xff0c;作为超市&#xff0c;怎样为顾客提供一个舒适方便的购物环境&#xff0c;尽可能让顾客逛完整个卖场&#xff0c;满足一站式购足呢&#xff1f;除了…

[PM]面试题-工作问题

画一个原型需要多久?写一篇PRD文档需求多久? 时间长短取决于项目规模和业务难度, 规模大难度高,就要花费很长的时间, 规模下难度低时间就短, 一般来说, 1-2周的时间就可以完成原型和RED文档 市场需求文档写什么? 从打到下进行编写, 大的方面以市场为主体,包括市场规模, 发…

【中项】系统集成项目管理工程师-第9章 项目管理概论-9.1PMBOK的发展与9.2项目基本要素

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

智能优化算法(三):遗传算法

文章目录 1.问题描述2.遗传算法2.1.算法概述2.2.编码操作2.3.选择操作2.4.交叉操作2.5.变异操作2.6.算法流程 3.算法实现3.1.MATLAB代码实现3.2.Python代码实现 4.参考文献 1.问题描述 \quad 在利用启发式算法求解问题时&#xff0c;我们常常需要应用遗传算法解决函数最值问题&…