Есть div, из содержимого этого div формируется canvas,потом я пытаюсь сохранить это в png
$("#s_img1").click(function (){
html2canvas($("#tableWrap"), {
onrendered: function(canvas) {
theCanvas = canvas;
document.body.appendChild(canvas);
$("canvas").attr("id", "canv");
$("#img-out").append(canvas);
}
});
var data = document.getElementById("canv").toDataURL();
$.post("process.php", {
imageData : data
}, function(data) {
window.location = data;
});
var myCanvas = $(document).find('#canv');
var myImg = myCanvas.get(0).toDataURL();
alert(myImg);
});
Проблема в том,что консоль дает ошибку на toDataURL();
Uncaught TypeError: Cannot read property 'toDataURL' of undefined
Подскажите в чем проблема?
Вот process.php
$data = substr($_POST['imageData'], strpos($_POST['imageData'], ",") + 1);
$decodedData = base64_decode($data);
$fp = fopen("canvas.png", 'wb');
fwrite($fp, $decodedData);
fclose();
echo "/canvas.png";
Тут html
Ответ
Проблема том, что при вызове var myCanvas = $(document).find('#canv');
элемент canv еще не создано.
Так будет работать:
function CallPost(postdatа) {
$.post("process.php", {imageData: postdatа})
.done(function (data) {
window.location = 'canvas.png';
});
}
$(document).ready(function() {
$("#s_img1").click(function () {
html2canvas($("#tableWrap"), {
onrendered: function (canvas) {
CallPost(canvas.toDataURL());
}
});
});
});
Комментариев нет:
Отправить комментарий