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 相关文章推荐
Shell脚本实现Linux系统和进程资源监控
Mar 05 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
Jun 01 Javascript
基于jquery实现人物头像跟随鼠标转动
Aug 23 Javascript
JQuery解析XML的方法小结
Apr 02 Javascript
Jquery和JS获取ul中li标签的实现方法
Jun 02 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
Feb 14 Javascript
JS高仿抛物线加入购物车特效实现代码
Feb 20 Javascript
基于jQuery解决ios10以上版本缩放问题
Nov 03 jQuery
基于VuePress 轻量级静态网站生成器的实现方法
Apr 17 Javascript
浅谈Fetch 数据交互方式
Dec 20 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
Aug 28 Javascript
基于JavaScript获取base64图片大小
Oct 18 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 Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
php替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
Add Formatted Text to a Word Document
2007/06/15 Javascript
IE 条件注释详解总结(附实例代码)
2009/08/29 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
javascript中如何处理引号编码&amp;#034;
2013/08/15 Javascript
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
js实现在同一窗口浏览图片
2014/09/17 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
Vue修改mint-ui默认样式的方法
2018/02/03 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
详解iview的checkbox多选框全选时校验问题
2019/06/10 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
Python tkinter事件高级用法实例
2018/01/31 Python
python实时监控cpu小工具
2018/06/21 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
python开头的coding设置方法
2019/08/08 Python
三严三实民主生活会发言稿
2014/10/13 职场文书
2014年车间工作总结
2014/11/21 职场文书
红歌会主持词
2015/07/02 职场文书
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
redis数据一致性的实现示例
2022/03/18 Redis