当前位置:首页 > 实用技巧 >

如何批量复制网页内容(如何复制网页全部内容)

来源:原点资讯(www.yd166.com)时间:2023-07-30 20:31:03作者:YD166手机阅读>>

使用方式

基于Clipboard API的方法是通过将目标内容作为参数,调用方法后将内容拷贝到剪贴板。

如何批量复制网页内容,如何复制网页全部内容(9)

但从文档得出,

document.execCommand(‘copy’)方法拷贝的是当前页面选中的内容,也就是拷贝用鼠标/触摸/调用js某些方法等方式在页面选中(不论是文本还是图片)的内容,并非使用传参的方式。

// 选中页面内容后执行 document.execCommand('copy');

关于复制所用到的基础API已梳理完毕,下面将从推荐方法和向下兼容的方法两方面来分别详细说明一下复制文本和复制图片所需要的具体方法。

推荐方法

下面将分别介绍使用Clipboard API提供的writeText和write实现文本和图片复制的具体方法。


推荐方法适用于打开该页面的浏览器比较新且底层有提供权限的场景。

复制文本

没啥需要详细说明的,直接代码:

if(navigator.clipboard) { // 首先确定Clipboard API存在 navigator.clipboard.writeText("要复制的目标文本") .then(() => { /* 剪贴板写入成功 */ }, () => { /* 剪贴板写入失败 */ // 可能存在navigator.clipboard存在 但无write权限的情况 // 可尝试用向下兼容的方法 在此重试复制操作 保障复制成功 }); }

复制图片

复制图片相较文本稍复杂些,需要将图片数据预处理成write()方法可接收的数据。

常规思路和代码:

1. 图片转换成blob

const url = 'https://cos.ap-shanghai.myqcloud.com/96fb-shanghai-180-sharedv4-01-1303031839/15df-1400798275/5eb2-46648b08a1dc9f874767187454986dc0/7e25d051dd2cfebfb832023708295f96-292349.png?imageMogr2/'; // 一张示例图 const image = await fetch(url); const blob = await image.blob();

2. 用ClipboardItem处理图片blob数据

const item = new ClipboardItem({ 'image/png': blob });

3. 执行write()方法复制

// 先确定Clipboard API存在 navigator.clipboard.write([itemImage]).then( () => { /* 写入剪贴板成功 */ }, (error) =>{ /* 写入剪贴板失败 可尝试使用向下兼容方法重试 */ } )

此处处理图片数据使用的是Clipboard API的ClipboardItem接口,但目前它只能处理png格式的图片,也就是blob类型为"image/png"的数据,如果用其他格式的图片,则会报错:

如何批量复制网页内容,如何复制网页全部内容(10)

上述情况需要多处理一步,利用Canvas统一不同格式的图片,异步转成blob,再复制:

/* 创建一个 Image 对象 */ const img = new Image(); img.src = url; img.crossOrigin = ''; /* 监听图片加载 */ img.onload = () => { /* 创建一个Canvas对象 */ const canvas = document.createElement('canvas'); canvas.width = img.width; canvas.height = img.height; /* 在Canvas上绘制图片 */ const ctx = canvas.getContext('2d'); ctx.drawImage(img, 0, 0); canvas.toBlob((blob) => { // 将Canvas转换为Blob对象 异步执行 /* 写入剪贴板 */ navigator.clipboard.write([new ClipboardItem({ [blob.type]: blob })]).then( () => { /* 写入剪贴板成功 */ }, (error) => { /* 写入剪贴板失败 可尝试使用向下兼容方法重试 */ } ) }, img.type); }

题外话:

如何批量复制网页内容,如何复制网页全部内容(11)

文档中提到,想要通过Clipboard API读取或更改剪贴板,需要用户授予权限才能成功,事实上使用时会发现,writeText和write方法在浏览器本身未禁止提供权限的情况下,不需再额外请求用户权限就可以正常使用;而用来粘贴的readText和read方法,由于有需要读取用户剪贴板这种极度隐私的行为,因此会在(以Chrome为例)左上角弹窗请求用户权限,如果用户未响应或禁止,那么此方法下的粘贴行为不会成功。

如何批量复制网页内容,如何复制网页全部内容(12)

栏目热文

如何把不能复制的网页复制下来(怎么快速复制不能复制的网页)

如何把不能复制的网页复制下来(怎么快速复制不能复制的网页)

相信很多朋友在工作和生活中,都从网上找过资料,可是有很多文档都需要付费,大部分人只能失望的关闭页面。今天我就来教大家4个...

2023-07-30 20:41:18查看全文 >>

怎样一键复制网页内容(怎么快速复制网页内容)

怎样一键复制网页内容(怎么快速复制网页内容)

平常在网上查找资料的时候,总是会有一些文档无法下载、甚至有时连复制都不行。这可怎么办?别急,今天我们就来介绍一些网页复制...

2023-07-30 20:41:12查看全文 >>

如何一键复制网页全部内容(怎样批量复制网页)

如何一键复制网页全部内容(怎样批量复制网页)

相信大家平时都会复制网页上面的一些东西,但是很多时候都复制不了,甚至要让我们买VIP,这也太坑了吧!还好,只要你学会下面...

2023-07-30 20:21:44查看全文 >>

怎么把一个网页完整的复制下来(如何把网页全部复制下来)

怎么把一个网页完整的复制下来(如何把网页全部复制下来)

#头条创作挑战赛#大家在上网的时候肯定碰到需要复制文本的情况。比如我们看到一段很好的句子想把它复制下来,或者看到一段有用...

2023-07-30 20:58:32查看全文 >>

网页如何一键复制(整个网页复制教程)

网页如何一键复制(整个网页复制教程)

在工作和学习中,经常需要用电脑查找资料,但是很多网页上的文档并不能直接复制或者下载,每次复制都要很麻烦,今天笔者分享的就...

2023-07-30 20:35:25查看全文 >>

怎样复制网页上不能复制的内容(解除网页禁止复制文字)

怎样复制网页上不能复制的内容(解除网页禁止复制文字)

在网上搜索资料的时候,我们常常需要将有用的内容复制下来。但你以为所有的网站内容都可以“复制-粘贴”吗?不难发现,很多网站...

2023-07-30 20:36:00查看全文 >>

怎么在网页复制单独内容(怎么让网页内容可复制)

怎么在网页复制单独内容(怎么让网页内容可复制)

在日常的网页浏览中,我们常常遇到想要复制网页文章的情况,但有时候复制文字并不那么简单。不过,别担心!本文将为您介绍5个小...

2023-07-30 20:45:38查看全文 >>

怎么把无法复制的网页复制下来(怎么快速复制不能复制的网页)

怎么把无法复制的网页复制下来(怎么快速复制不能复制的网页)

我们在日常办公的时候,经常需要在网上找一些资料信息,有的时候,找到自己想要的内容,但是当你想快速复制粘贴给自己用的时候,...

2023-07-30 20:28:03查看全文 >>

怎样复制整个网页内容(如何复制网页全部内容)

怎样复制整个网页内容(如何复制网页全部内容)

我们平时在办公或写材料时需要从网上复制些文字,但是相当一部分网站拒绝复制,有些网站是需要关注他的公众号才可以复制,有些是...

2023-07-30 20:56:04查看全文 >>

如何批量复制网页(如何批量复制网页链接)

如何批量复制网页(如何批量复制网页链接)

Link Grabber 是一款能够批量提取、筛选、复制网页里各种链接的 Chrome 扩展,360浏览器等也可使用。昨...

2023-07-30 20:31:08查看全文 >>

文档排行