html2canvas для html-страницы с несколькими изображениями из одного источника

У меня есть несколько изображений на html-странице. Я хочу использовать html2canvas для преобразования страницы в изображение. Изображения являются локальными и из одного и того же источника. Всегда отображается сообщение об ошибке "Невозможно получить данные изображения из холста, поскольку холст имеет был испорчен данными перекрестного происхождения. "

Один и тот же код будет работать для одного изображения или нескольких копий одного и того же изображения.

<!DOCTYPE HTML>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="language" content="de">
    <script type="text/javascript" src="./js/jquery-1.9.1.js"></script>
    <script type="text/javascript" src="js/html2canvas.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        var target = $('#mainDiv');
        html2canvas(target, {
            onrendered: function(canvas) {
            var data = canvas.toDataURL();
            var img = document.getElementById('img1');
            img.src = data;
            }
        });
        });
  </script>
  </head>
  <body>
    <div id="mainDiv">
    <div id="div1" ><p>paragraph 1  paragraph 1  paragraph 1  paragraph 1  paragraph 1  paragraph 1  paragraph 1  paragraph 1  </p></div>
    <div id="div2" ><p>paragraph2 paragraph2 paragraph2 paragraph2 paragraph2 paragraph2 paragraph2 paragraph2 </p></div>
    <img src="images/01.jpg" >
      <img src="images/02.jpg" >
      <img src="images/03.jpg" >
      <img src="images/04.jpg" >
    </div>
  <img id="img1"></img>
  </body>
</html>

Я не уверен, что означает сообщение об ошибке. Также, если кто-то может сказать мне, как мне сделать эту работу с несколькими изображениями, это будет очень полезно

1 ответ

Просто удалите то, что вам не нужно. то есть у меня есть Div1,Div2 и т. д.

      function PrintChartCanvas(divId) {
            //div canvas
            var divObj = html2canvas($('#div' + divId));
            var divQueu = divObj.parse();
            var divCanvas = divObj.render(divQueu);
            divImg = divCanvas.toDataURL();

            return divImg;
        } 

document.getElementById("img1").src = PrintChartCanvas(3);

Это должно работать

Другие вопросы по тегам