Autor Zpráva
JardaB
Profil
Zdravím,

lze pomocí javascriptu udělat screenshot určitého elementu? Našel jsem html2canvas, má s tím někdo zkušenost? Pokud jsem dobře pochopil, tak je tam nutná nějaká instalace.
weroro
Profil
Netreba nič inštalovať. Máš tam na stiahnutie dva súbory html2canvas.js alebo html2canvas.min.js
Vyber si jeden z nich. Tie odkazy v rámčeku sú nevýrazné ale klikateľné.
JardaB
Profil
Zkusím a uvidíme. Nicméně teď mě napadá, že vlastně potřebuji uložit obrázek, který je výsledkem samotného <canvas>. To by snad mohlo jít i bez html2canvas?


Zkusil jsem následující a maká, ale je tam ještě tato chybová hláška Synchronous XMLHttpRequest on the main thread is deprecated

function saveImage() {
  var canvasData = canvas.toDataURL("image/png");
  var ajax = new XMLHttpRequest();

  ajax.open("POST", "testSave.php", false);
  ajax.onreadystatechange = function() {
    console.log(ajax.responseText);
  }
  ajax.setRequestHeader("Content-Type", "application/upload");
  ajax.send("imgData=" + canvasData);
}


<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) {
  $imageData = $GLOBALS['HTTP_RAW_POST_DATA'];
  $filteredData = substr($imageData, strpos($imageData, ",") + 1);
  $unencodedData = base64_decode($filteredData);
  $fp = fopen('/path/to/file.png', 'wb');

  fwrite($fp, $unencodedData);
  fclose($fp);
}
?>
weroro
Profil
Zmaž vyznačenú časť ajax.open("POST", "testSave.php", false);

JardaB:
Zkusil jsem následující a maká, ale je tam ještě tato chybová hláška Synchronous XMLHttpRequest on the main thread is deprecated

Pretože XMLHttpRequest.open() - Web APIs | MDN
Synchronous requests on the main thread can be easily disruptive to the user experience and should be avoided; in fact, many browsers have deprecated synchronous XHR support on the main thread entirely.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0