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 相关文章推荐
让iframe子窗体取父窗体地址栏参数(querystring)
Oct 13 Javascript
jQuery $.data()方法使用注意细节
Dec 31 Javascript
js采用map取到id集合组并且实现点击一行选中一行
Dec 16 Javascript
jquery链式操作的正确使用方法
Jan 06 Javascript
jquery+正则实现统一的表单验证
Sep 20 Javascript
js实现文字垂直滚动和鼠标悬停效果
Dec 31 Javascript
JS中script标签defer和async属性的区别详解
Aug 12 Javascript
Vue.js 表单校验插件
Aug 14 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
Jun 02 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
Dec 23 Javascript
webpack 最佳配置指北(推荐)
Jan 07 Javascript
vue瀑布流组件实现上拉加载更多
Mar 10 Javascript
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
关于php fread()使用技巧
2010/01/22 PHP
php array_map()数组函数使用说明
2011/07/12 PHP
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
PHP基于XMLWriter操作xml的方法分析
2017/07/17 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
学习并汇集javascript匿名函数
2010/11/25 Javascript
常见的jQuery选择器汇总
2014/11/24 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
VUEX采坑之路之获取不到$store的解决方法
2019/11/08 Javascript
vue+animation实现翻页动画
2020/06/29 Javascript
Element中Slider滑块的具体使用
2020/07/29 Javascript
[01:36:57]【09DOTA2第一视角】小骷髅
2014/04/16 DOTA
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
python机器学习理论与实战(六)支持向量机
2018/01/19 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
python pygame实现方向键控制小球
2019/05/17 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
python中selenium库的基本使用详解
2020/07/31 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
小摄影师教学反思
2014/04/27 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js