canvas节点无法导出图片_利用canvas将网页元素生成图片并保存在本地

利用canvas将网页元素生成图片并保存在本地,首先引入三个文件:

>

>

>

//canvas截图为document.body上的元素

html2canvas(document.body).then(function (canvas) {

canvas.setAttribute('id','canvasImg'); //给canvas添加id

// document.body.Child(canvas)

document.getElementById('images').Child(canvas) //添加canvas图给元素

});

let Download=document.getElementById('Download');

Download.=function () { //给下载节点绑定事件

let oCanvas=document.getElementById('canvasImg'); //获取canvas的id

console.log(oCanvas)

// 将canvas图片通过Canvas2Image转成的img元素引入的图片

let img=Canvas2Image.saveAsJPEG(oCanvas,true).getAttribute('src');

console.log(img);

saveFile(img,'hlr.png') //调用下载函数,传Canvas2Image图片地址,下载时保存的图片的名称

};

注:NS() 方法可创建带有指定命名空间的元素节点。 NS(ns,name) > NS() 方法与 () 方法相似,只是它创建的 Element > 节点除了具有指定的名称外, > 还具有指定的命名空间。只有使用命名空间的 XML 文档才会使用该方法。

let saveFile=function (data,filename) {

let save_link=document.NS('http://www.w3.org/1999/xhtml','a'); //img表示生成img元素或a元素或则可以放图片地址的元素

save_link.href=data; //img 元素中图片引入用src,a元素中图片的引入用href等等

save_link.download=filename; // 下载的名称

var event = document.createEvent('MouseEvents');//创建event事件

console.log(event);

//initMouseEvent 方法用于初始化通过 DocumentEvent 接口创建的 MouseEvent 的值, 详见下文:

event.initMouseEvent('click', true, false, , 0, 0, 0, 0, 0, false, false, false, false, 0, null);

save_link.dispatchEvent(event);

console.log(save_link)//

素材公社https://www.wode007.com/sites/73209.html 爱图网https://www.wode007.com/sites/73208.html

initMouseEvent 方法用于初始化通过 DocumentEvent 接口创建的 MouseEvent 的值。 此方法只能在通过 dispatchEvent 方法指派 MouseEvent 之前调用,尽管在该阶段可以多次调用它(如有必要)。如果被多次调用,则最后一次调用优先。

其他指定事件方法:

typeArg - 指定事件类型。

canBubbleArg - 指定该事件是否可以 bubble。

cancelableArg - 指定是否可以阻止事件的默认操作

viewArg - 指定 Event 的 AbstractView。

detailArg - 指定 Event 的鼠标单击量。

screenXArg - 指定 Event 的屏幕 x 坐标

screenYArg - 指定 Event 的屏幕 y 坐标

clientXArg - 指定 Event 的客户机 x 坐标

clientYArg - 指定 Event 的客户机 y 坐标

ctrlKeyArg - 指定是否在 Event 期间按下 control 键

altKeyArg - 指定是否在 Event 期间按下 alt 键。

shiftKeyArg - 指定是否在 Event 期间按下 shift 键。

metaKeyArg - 指定是否在 Event 期间按下 meta 键。

Arg - 指定 Event 的鼠标按键。

relatedTargetArg - 指定 Event 的相关 EventTarget。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值