我在我的网站上有一个div,我想放置一个按钮/链接(或其他类型的东西),点击后将div和它的所有内容保存到用户电脑,就像用来打印div的打印代码一样。我是一个编码新手,所有的帮助都会有所帮助。用户捕获div作为图像并保存到计算机
8
A
回答
11
这样做有浏览器支持限制。 HTML2Canvas可以将您的HTML内容呈现为canvas
元素。然后,您可以使用canvas.toDataURL("image/png");
(docs in MDN)方法将canvas
元素导出为jpeg
或png
图像。
它没有得到广泛的支持,但它仍然是可能的。
0
假设您想要一个文本或HTML文件,而不是像屏幕截图这样的图像文件,JavaScript本身无法在Web浏览器上启动“保存”对话框,只有从Web请求到服务器的响应将会这样做。
首先,你需要与你的按钮和一个隐藏字段形式:
<div id="saveme">stuff to save</div>
<form action="saveme.aspx" method="POST">
<input type="submit" onclick="prepsave()">
<input type="hidden" id="savemepost">
</form>
而且你需要一些JavaScript来提交前的DIV内容保存到隐藏字段:
<script>
function prepsave() {
document.getElementById("savemepost").value =
document.getElementById("saveme").innerHTML;
return true;
}
</script>
在服务器上,你需要一些代码来接受文本和吐回了一个文件附件的形式:
<script runat="server">
Response.Clear()
Response.AddHeader("content-disposition","attachment; filename=saved.html")
Response.Write(Request.Form("savemepost"))
</script>
注意事项#1:可能存在一些小问题,并有很大的改进空间,这只是一个概念证明。
注意事项#2:上述服务器端代码可能不安全,因为它允许任何网页控制从您的域到用户网络浏览器的内容。您需要添加一些措施以防止滥用。
+0
他说他希望它能像他的评论中的截图一样题。 –
1
简单的方法
var MyDiv1 = document.getElementById('DIV1');
var MyDiv3 = document.getElementById('DIV2');
MyDiv3.innerHTML = MyDiv1.innerHTML;
html2canvas(MyDiv3, {
useCORS: true,
onrendered: function (canvas) {
var dataUrl = canvas.toDataURL("image/png");
document.getElementById("HiddenField1").value = dataUrl;
}
});
使用按键,调乌尔隐藏字段值
ButtonClick1()
{
string imgval = HiddenField1.Value;
imgval = imgval.Replace("data:image/png;base64,", "");
byte[] imgData = Convert.FromBase64String(imgval);
using (System.Drawing.Image image = System.Drawing.Image.FromStream(new MemoryStream(imgData)))
{
String path = Server.MapPath("~/imgFolder");
image.Save(path + "\\output.jpg", ImageFormat.Jpeg); // Or Png
}
}
0
一个简单的方法来做到这一点是使用GrabzIt的JavaScript API来capture a div。你只需要做如下的事情。其中#features是您要捕获的div的ID。
<script type="text/javascript" src="grabzit.min.js"></script>
<script type="text/javascript">
GrabzIt("Your Application Key").ConvertURL("http://www.example.com/my-page.html",
{"target": "#features", "bheight": -1, "height": -1, "width": -1}).Create();
</script>
免责声明我构建了此API!
相关问题
- 1. NAO无法将捕获的图像保存到本地计算机
- 2. 从相机捕获图像并将其保存为字符串
- 3. 捕获手机后保存图像ios
- 4. 保存图像在本地计算机
- 5. 捕获DIV作为图像 - C#
- 6. 在android中用相机捕获图像并保存为自定义名称
- 7. 使用相机并将图像保存到firebase不起作用
- 8. 将div保存到图像(不工作)
- 9. 捕获android的webview图像并保存为png/jpeg
- 10. 压缩并保存捕获到localStorage的图像
- 11. 捕获摄像头的图像并保存
- 12. 如何捕捉图像并保存(Uri)?
- 13. 捕获图像并将其保存在内部存储器上
- 14. PHP将文件保存到用户计算机
- 15. 将文件保存到用户计算机在VB.Net
- 16. 从连接到计算机的摄像头捕获图像并在成像设备中列出
- 17. AVCam保存全屏捕获的图像
- 18. 在android中捕获的图像保存
- 19. 网页捕捉并保存到图像使用phantomjs LIB
- 20. 如何使用相机捕获图像并发送到firebase
- 21. 计算快速的方法来保存Matlab图像作为图像(例如PNG)
- 22. 保存通过相机捕获的图像JPG
- 23. 将标签合并到图像上并保存为新图像?
- 24. 使用j2me将捕获的图像保存到SD卡中
- 25. iOS将捕获的图像保存到内存并访问它们
- 26. 如何使用离子框架捕获图像并保存到Gallery中
- 27. OpenCV,从相机捕获并保存到文件
- 28. 如何将捕获的图像保存到图库
- 29. HTML5捕获暂停视频流的图像并保存它
- 30. Python RPI GPIO:SMTP代码捕获HTTP图像保存并发送
你想从你的div捕获图像吗? – Mohsen
是的,我希望该网站的用户能够按下一个按钮,然后它下载一个jpg/gif/png或div的div的屏幕截图 –