Есть скрипт, который лепит вотермарки на все найденные на страницы изображения. Разумеется не работает для модальных окон, в которых картинки подгружаются через аякс. Добавил в конец php файла подгружаемого аяксом скрипт, который должен сделать вотермарки для тех картинок, что подгружаются, но скрипт в 80% случаев ведет себя криво: не наносит на canvas основную картинку. Просто вешает на пустой канвас вотермарку. Как быть?
Код файла, который подгружается аяксом.
<div class="img_modal" data-id="<?= $img_id ?>" id="img_<?= $img_id ?>">
<span class="img_alt" id="alt_img_<?=$img_id?>" data-id="<?=$img_id?>"></span>
<?= $image ?>
<script>
$('#img_'+<?=$img_id?>).children('img').attr('id', 'watermark_modalsource' + <?=$img_id?>);
var imgWidth = $('#watermark_modalsource'+<?=$img_id?>).width();
var imgHeight = $('#watermark_modalsource'+<?=$img_id?>).height();
$('#watermark_modalsource'+<?=$img_id?>).parent().append("<canvas class='watermarked_canvas'>");
$('#watermark_modalsource'+<?=$img_id?>).next().next('canvas').attr('width', imgWidth);
$('#watermark_modalsource'+<?=$img_id?>).next().next('canvas').attr('height', imgHeight);
$('#watermark_modalsource'+<?=$img_id?>).next().next('canvas').attr('id', 'watermarkcanvas');
var c = document.getElementById('watermarkcanvas');
var ctx = c.getContext("2d");
var img = document.getElementById('watermark_modalsource' + <?=$img_id?>);
ctx.drawImage(img, 0, 0, imgWidth, imgHeight);
var img2 = document.getElementById("watermark");
ctx.drawImage(img2, 0, 0, imgWidth, imgHeight);
var canvas = document.getElementById('watermarkcanvas');
var dataURL = canvas.toDataURL();
$('#watermark_modalsource'+<?=$img_id?>).attr('src', dataURL);
$('#watermarkcanvas').remove();
$('.watermarked_canvas').remove();
</script>
</div>