Javascript保存网页为图片借助于html2canvas库实现


Posted in Javascript onSeptember 05, 2014

第一步,把网页保存为Canvas画布,借助于html2canvas库,http://html2canvas.hertzen.com/

html2canvas(document.getElementById("id1"), { 
onrendered: function(canvas) { 
document.getElementById("id2").appendChild(canvas);//生成画布后如何处理,当然可以在新标签打开,在浮层展示等等 
}, 
canvas_id: 'canvas'//通过修改html2canvas源码添加canvas的id 
});

Note:html2canvas()第一个参数为要生成canvas的区域,如果整个网页生成canvas,则是document.body。第二个参数详见官网设置canvas的各种属性,当然修改源代码可以添加自己想要的属性,如给canvas添加id等。

第二步,把第一步中生成的canvas保存成图片

var canvas = document.getElementById("<span style="font-family: Arial, Helvetica, sans-serif;">canvas"</span><span style="font-family: Arial, Helvetica, sans-serif;">),</span> 
url = canvas.toDataURL();// 
//以下代码为下载此图片功能 
var triggerDownload = $("<a>").attr("href", url).attr("download", "img.png").appendTo("body"); 
triggerDownload[0].click(); 
triggerDownload.remove();

这里关注toDataURL()方法即可,可以把canvas转化成data形式的图片url,把这个url赋给<img/>标签即可显示图片,代码中其他部分为自己需要的下载功能。

Javascript 相关文章推荐
Javascript操纵Cookie实现购物车程序
Nov 23 Javascript
用JavaScript实现UrlEncode和UrlDecode的脚本代码
Jul 23 Javascript
jQuery 1.5 源码解读 面向中高阶JSER
Apr 05 Javascript
javascript刷新父页面的各种方法汇总
Sep 03 Javascript
jquery获得当前html页面源码的方法
Jul 14 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
Oct 24 Javascript
Bootstrap源码解读导航(6)
Dec 23 Javascript
vue.js实现的幻灯片功能示例
Jan 18 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
Mar 19 Javascript
JS字符串补全方法padStart()和padEnd()
May 27 Javascript
详解JavaScript中的this指向问题
Feb 05 Javascript
vue中axios封装使用的完整教程
Mar 03 Vue.js
JavaScript立即执行函数的三种不同写法
Sep 05 #Javascript
JavaScript实现生成GUID(全局统一标识符)
Sep 05 #Javascript
JavaScript判断textarea值是否为空并给出相应提示
Sep 04 #Javascript
Firefox下无法正常显示年份的解决方法
Sep 04 #Javascript
window.location的重写及判断location是否被重写
Sep 04 #Javascript
js怎么覆盖原有方法实现重写
Sep 04 #Javascript
JS的location.href跳出框架打开新页面的方法
Sep 04 #Javascript
You might like
一个用于mysql的数据库抽象层函数库
2006/10/09 PHP
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
10款实用的PHP开源工具
2015/10/23 PHP
PHP使用Pear发送邮件(Windows环境)
2016/01/05 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
js页面跳转常用的几种方式
2010/11/25 Javascript
JavaScript学习笔记(一) js基本语法
2011/10/25 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
在python中的socket模块使用代理实例
2014/05/29 Python
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
Python有序查找算法之二分法实例分析
2017/12/11 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
HTML的form表单和django的form表单
2019/07/25 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
华为c/c++笔试题
2016/01/25 面试题
宠物店的创业计划书范文
2014/01/11 职场文书
2015年妇女工作总结
2015/05/14 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书