已经有很多类似的问题,但由于某种原因,它们无法解决我的问题。
我的项目是保存动态创建的页面(或页面的一部分)。用户可以选择在屏幕上拖动对象并按任意顺序保留它们,然后将此订单作为图像保存到光盘。
我自己的研究显示我可以使用Draggable from JQuery,这很容易实现。这是我被困住的储蓄部分。
我关注了一些links,但图片似乎没有保存到光盘,我觉得它在IE中不起作用!但是,我对FireFox感到满意,所以使用toDataUrl()听起来就像是最好的方法。
由于我无法使其工作,我决定稍微改变策略并将值传递给后面的代码(C#)
我的代码的保存部分看起来像
<script>
function SaveMe() {
var canvas = document.getElementById("mycanvas");
var image = canvas.toDataUrl();
document.getElementById("hideMe").value = image;
}
</script>
当我在FireBug中调试时,我从未到达document.getElementById("hideMe").value = image;
。我一步一步但永远不会过去var image = canvas.toDataUrl();
这是预期的行为,因为我假设没有,但没有错误信息?
我的HTML正文
<body>
<script type="text/javascript">
$(document).ready(function () {
$('.popup_click').show(0).draggable();
});
</script>
<form id="form1" runat="server">
<div class="popup_click">
<div id="popup_title">Title</div>
</div>
<canvas id="mycanvas" class="canvas"></canvas>
<asp:HiddenField ID="hideMe" runat="server" />
<asp:Button runat="server" OnClick="ClickMe" text="Click" OnClientClick="SaveMe()"/>
</form>
</body>
我做错了什么?我在调试模式,Visual Studio 2013本地工作。
答案 0 :(得分:1)
不是很确定,但我过去也遇到了todataurl()的问题,这个链接帮助了我
答案 1 :(得分:1)
这是我想要将画布导出到图像时总是使用的功能,它将图像放入弹出窗口,以便用户可以用它做他们想做的事情(我希望这有帮助):
function imageCanvas(evt){
var imageCanvas = document.createElement('canvas');
imageCanvas.width = document.documentElement.clientWidth;
imageCanvas.height = document.documentElement.clientHeight;
var imageCanvasContext = imageCanvas.getContext("2d");
imageCanvasContext.fillStyle = document.getElementById("body").style.backgroundColor;
imageCanvasContext.fillRect(0,0,imageCanvas.width,imageCanvas.height);
imageCanvasContext.drawImage(mainCanvas,0,0,imageCanvas.width,imageCanvas.height,0,0,imageCanvas.width,imageCanvas.height);
var dataURL = imageCanvas.toDataURL("image/png");
var imagePopup = window.open("","fractalLineImage","left=0,top=0,width="+(imageCanvas.width/2)+",height="+(imageCanvas.height/2)+",toolbar=0,resizable=0");
imagePopup.document.write("<title>Export Image</title>");
imagePopup.document.write("<img id='exportImage'"
+" alt=''"
+" height='"+ imageCanvas.height+"'"
+" width='"+ imageCanvas.width+"'"
+" style='position:absolute;left:0;top:0'/>");
imagePopup.document.close();
var exportImage = imagePopup.document.getElementById("exportImage");
exportImage.src = dataURL;
}