`

HTML 5中的截屏

阅读更多

一段用HTML5+Javascript的截屏代码

来自:http://www.xpertdeveloper.com/2012/10/webpage-screenshot-with-html5-js/

 

(function (exports) { function urlsToAbsolute(nodeList) { if (!nodeList.length) { return []; } var attrName = 'href'; if (nodeList[0].__proto__ === HTMLImageElement.prototype || nodeList[0].__proto__ === HTMLScriptElement.prototype) { attrName = 'src'; } nodeList = [].map.call(nodeList, function (el, i) { var attr = el.getAttribute(attrName); if (!attr) { return; } var absURL = /^(https?|data):/i.test(attr); if (absURL) { return el; } else { return el; } }); return nodeList; } function screenshotPage() { urlsToAbsolute(document.images); urlsToAbsolute(document.querySelectorAll("link[rel='stylesheet']")); var screenshot = document.documentElement.cloneNode(true); var b = document.createElement('base'); b.href = document.location.protocol + '//' + location.host; var head = screenshot.querySelector('head'); head.insertBefore(b, head.firstChild); screenshot.style.pointerEvents = 'none'; screenshot.style.overflow = 'hidden'; screenshot.style.webkitUserSelect = 'none'; screenshot.style.mozUserSelect = 'none'; screenshot.style.msUserSelect = 'none'; screenshot.style.oUserSelect = 'none'; screenshot.style.userSelect = 'none'; screenshot.dataset.scrollX = window.scrollX; screenshot.dataset.scrollY = window.scrollY; var script = document.createElement('script'); script.textContent = '(' + addOnPageLoad_.toString() + ')();'; screenshot.querySelector('body').appendChild(script); var blob = new Blob([screenshot.outerHTML], { type: 'text/html' }); return blob; } function addOnPageLoad_() { window.addEventListener('DOMContentLoaded', function (e) { var scrollX = document.documentElement.dataset.scrollX || 0; var scrollY = document.documentElement.dataset.scrollY || 0; window.scrollTo(scrollX, scrollY); }); } function generate() { window.URL = window.URL || window.webkitURL; window.open(window.URL.createObjectURL(screenshotPage())); } exports.screenshotPage = screenshotPage; exports.generate = generate; })(window);

 

分享到:
评论

相关推荐

    html5网页截图批注效果

    开发者可以查看这些文件,学习如何在实际项目中应用HTML5 Canvas来实现类似的批注和截图功能。 总的来说,HTML5 Canvas为我们提供了一种强大的工具,可以轻松实现网页批注和截图,增强用户在网页上的交互体验。通过...

    html5 实现网页截屏

    html5 实现网页截屏 html2canvas通过获取页面的DOM和元素的样式信息,并将其渲染成canvas图片,从而实现给页面截图的功能。

    HTML5手机截图插件

    HTML5中的canvas元素是实现动态图形和图像处理的关键,它是HTML5的一大亮点。在这个手机截图插件中,canvas可能是核心组成部分。Canvas允许开发者通过JavaScript来绘制2D图形,包括线条、形状、图片等,甚至可以捕获...

    解决htmlcanvas手机无法截图或者截图不全的问题

    5. **跨域问题**:如果HTML元素中包含跨域的图片,出于安全考虑,浏览器不会允许html2canvas访问这些图片数据。 针对以上问题,我们可以采取以下策略来解决: 1. **修正CSS Transforms**:确保在截图前,临时移除...

    html5 实现截图 代码实例

    首先,我们要了解HTML5中的`<canvas>`元素。这是一个可编程的图形区域,开发者可以通过JavaScript来控制其内容。通过`canvas.getContext('2d')`方法获取2D渲染上下文,然后调用一系列绘图方法,如`fillRect()`, `...

    html2canvas(兼容截图svg元素)

    HTML5技术为网页开发带来了许多创新,其中包括网页截图的功能。`html2canvas`是一个非常流行的JavaScript库,它允许开发者在浏览器环境中将HTML元素转换为Canvas画布,进而可以将其保存为图片。这个库的主要用途是...

    html5拖拽图片调整截图代码.zip

    在这个"html5拖拽图片调整截图代码.zip"压缩包中,包含的代码示例正是利用了这一特性,提供了一个图片编辑的功能,让用户可以自由调整图片大小并进行截图。下面我们将详细探讨相关的HTML5、JavaScript和图片处理技术...

    html2Canvas截图加demo

    在这个例子中,我们对整个body进行截图,并将生成的Canvas添加到页面上,同时也会创建一个指向截图的图片链接。如果你想要自定义截图区域,可以传入更具体的DOM选择器或者DOM元素。 另外,值得注意的是,...

    h5实现屏幕截图功能

    首先,我们需要了解的是HTML5中的Canvas元素,它是实现屏幕截图的关键。Canvas是一个二维绘图表面,通过JavaScript可以绘制图形、图像和文字。在我们的场景中,Canvas将用于捕捉用户选定的屏幕区域。 1. **HTML结构...

    HTML2canvas截图

    这个工具在Web开发中非常有用,因为HTML页面通常包含丰富的文本、图片和其他元素,而直接通过浏览器的截屏功能可能无法捕获到这些动态或交互性的内容。HTML2canvas提供了一个解决方案,使得开发者能够自定义地控制...

    html5头像上传拖动图片头像截图效果

    3. **Canvas元素**: Canvas是HTML5中用于绘制图形的画布,提供了丰富的API用于动态绘制和操作图像。在头像截图效果中,可以利用Canvas对上传的图片进行裁剪,用户可以通过拖动和缩放选择需要的部分作为头像。 4. **...

    js+HTML5实现视频截图的方法.docx

    在现代Web开发中,JavaScript和HTML5的组合提供了丰富的功能,包括多媒体处理。本文将详细介绍如何使用JavaScript和HTML5来实现视频截图的功能。这在创建交互式应用、在线教育平台或者社交媒体分享等场景中非常有用...

    html2canvas实现js截图+模拟摄像头拍照

    在网页开发中,有时我们需要实现用户在浏览器端截取页面快照或者模拟摄像头拍照的功能,这些功能在诸如在线教育...在实际项目中,可能还需要考虑兼容性、性能优化、安全问题等,确保截图功能在各种环境下都能稳定运行。

    HTML页面 截图工具

    5. **共享与导出**:截图工具通常提供直接分享至社交媒体或云存储服务的功能,方便协作和交流。 6. **自动化脚本**:对于需要定期或大量截图的情况,一些工具支持通过脚本自动化截图过程,提高效率。 7. **隐私...

    flash在线截图例子

    这个标题提到的示例可能是一个基于Adobe Flash技术实现的在线截图工具,虽然Flash现在已经被HTML5等现代Web技术所取代,但在过去,Flash因其强大的多媒体处理能力而被广泛应用。 描述中提到的"或许对一部分人有用...

    手机网页打印,wap打印,手机打印,H5打印,H5手机打印,H5截屏,js 截屏,手机网页截屏

    总的来说,手机网页打印和截屏涉及的技术包括HTML5、JavaScript(尤其是jQuery和html2canvas库)、蓝牙通信以及可能的云服务集成。开发者需要理解这些技术的工作原理,并考虑用户体验,如错误处理、性能优化以及跨...

    HTM截屏截图代码例子

    在这个"HTM截屏截图代码例子"中,我们将探讨如何利用这两种技术实现网页截屏的功能。 首先,让我们了解什么是网页截屏。网页截屏是指将当前浏览器窗口或指定网页区域的内容转化为图像的过程。在前端开发中,这个...

    shearphoto2.2_HTML5正式版,HTML5截图,拍照截图,头像截取

    3:修复HTML5时,部份图片的类型错误! 4: HTML5截取时,GIF统一强制转换为JPG格式! 5:加入启动前缓冲效果!规定JS加载完,主界面才显示 6: CSS文件作了微调和优化 升级 时间9月25日 晚 作者:明哥先生 请下载2.2...

    JAVA HTML截图.rar

    5. 将截图保存为图片文件,如JPEG或PNG格式。 需要注意的是,由于不同的浏览器和渲染引擎可能会有不同的HTML呈现效果,因此这种方法可能无法完全复制网页在不同环境下的显示。此外,处理复杂的CSS和JavaScript可能...

    HTML5摄像头播放视频和截图

    首先,HTML5中的`<video>`标签允许我们在网页上直接播放视频流,无需任何外部插件。以下是一个简单的HTML5视频播放器的基本结构: ```html Your browser does not support the video tag. ``` 这段代码创建了...

Global site tag (gtag.js) - Google Analytics