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 相关文章推荐
JQuery 引发两次$(document.ready)事件
Jan 15 Javascript
Extjs中常用表单介绍与应用
Jun 07 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
Feb 12 Javascript
jquery一句话全选/取消全选
Mar 01 Javascript
jquery实现标题字体变换的滑动门菜单效果
Sep 07 Javascript
jQuery基于muipicker实现仿ios时间选择
Feb 22 Javascript
jquery滚动条插件slimScroll使用方法
Feb 09 Javascript
Vue内容分发slot(全面解析)
Aug 19 Javascript
vue项目引入Iconfont图标库的教程图解
Oct 24 Javascript
element-ui组件中input等的change事件中传递自定义参数
May 22 Javascript
新手如何快速理解js异步编程
Jun 24 Javascript
Vue select 绑定动态变量的实例讲解
Oct 22 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
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
收集的DedeCMS一些使用经验
2007/03/17 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
php实现字符串首字母转换成大写的方法
2015/03/17 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
ant design实现圈选功能
2019/12/17 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
[03:00]《DAC最前线》之欧美新秀VS老将
2015/02/01 DOTA
python自动发送邮件脚本
2018/06/20 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
python 实现绘制整齐的表格
2019/11/18 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
Python流程控制语句的深入讲解
2020/06/15 Python
Python实现数字的格式化输出
2020/08/01 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
十一酒店活动方案
2014/02/20 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
爱护花草树木的标语
2014/06/11 职场文书
宣传口号大全
2014/06/16 职场文书
中文专业求职信
2014/06/20 职场文书
大学学生个人总结
2015/02/15 职场文书
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库