更新(2018 年 3 月):未来的人们你好!这个答案仍然有很多流量,我注意到我放在一起的旧 JSFiddle 已经坏了,所以它已经更新了。展示这种技术的新 JSFiddle 在这里:https ://jsfiddle.net/Sq7hg/1913 。
--
如果你不能使用,你可能想研究一个基于 Flash 的解决方案<canvas>
(尽管除非这特别需要在旧版本的 IE 中工作,我不确定你为什么不能)。
http://flashcanvas.net/是<canvas>
使用 Flash 的模拟,它可能会带你去你需要去的地方。该文档说它支持toDataURL()
,因此可能对您有用。
您能否更深入地了解您的限制<canvas>
是什么以及您已经尝试过什么?
//编辑
根据您在下面的评论,您可能可以使用<canvas>
,在这种情况下,您可以尝试使用http://html2canvas.hertzen.com - 这是一个 JavaScript 解决方案,基本上将代码的指定部分的 DOM 重写为 a<canvas>
和然后允许您随心所欲地与它进行交互,包括通过toDataURL()
.
我以前没有使用过它,但是您的 JavaScript 代码看起来像这样:
html2canvas([document.getElementById('mydiv')], {
onrendered: function(canvas) {
var data = canvas.toDataURL('image/png');
// AJAX call to send `data` to a PHP file that creates an image from the dataURI string and saves it to a directory on the server
}
});
我在这里拼凑了一个快速的jsfiddle:https ://jsfiddle.net/Sq7hg/1913/ (注意:更新链接如上所述)
这个 jsfiddle 展示了如何使用该toDataURL()
方法将画布转换为图像并将其附加到文档中。将生成的图像保存到服务器是一项无限复杂的任务,因为它需要 AJAX 调用或其他方式将图像数据发送到 PHP 脚本,该脚本将生成的data:
URL 转换为实际图像,然后将其保存到您拥有的目录写入权限。如果这是您需要做的,而不是在这里进行,我建议从这个 Stack Overflow 问题开始:如何将 HTML5 Canvas 保存为服务器上的图像?