Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Kopiowanie z html2canvas
edzio20
post 27.04.2018, 07:03:07
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 16.10.2017

Ostrzeżenie: (0%)
-----


Witam,
potrzebuję robić screenshoty niektórych elementów na stronie i w tym celu używam 'html2canvas' i wszystko działa, ale problem mam taki, że potrzebuje dany obraz skopiować do schowka (clipboard) i nie za bardzo wiem jak to zrobić, jakieś pomysły? smile.gif

Kod robienia obrazu oraz wstawianie go na stronę:

Kod
html2canvas(document.getElementsByClassName('table')[0]).then(function(canvas) {
     document.body.appendChild(canvas);
});
Go to the top of the page
+Quote Post
trueblue
post 27.04.2018, 08:57:29
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Pobierasz dane obrazka z Canvas (toDataURL), tworzysz <img> na stronie ustawiając mu jako src wynik z poprzedniego kroku, wykorzystujesz jakiś skrypt JS do skopiowania zaznaczonego obszaru do schowka.


--------------------
Go to the top of the page
+Quote Post
aras785
post 27.04.2018, 09:03:56
Post #3





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Obrazka nie jesteś w stanie skopiować niestety (jedynie tekst):

http://jsfiddle.net/sodofkcs/3585/

@trueblue - możliwe, że się myle, zapodaj przykład jeśli da się skopiować obrazek przy użyciu js.

Ten post edytował aras785 27.04.2018, 09:12:51
Go to the top of the page
+Quote Post
trueblue
post 27.04.2018, 10:11:09
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


aras785,
bardzo możliwe, że masz rację. Co prawda jest Clipboard API, ale chyba ze wsparciem tylko w Chrome.

Autorowi pozostaje rozwiązanie pośrednie - wymusić download obrazka.


--------------------
Go to the top of the page
+Quote Post
edzio20
post 27.04.2018, 10:15:12
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 16.10.2017

Ostrzeżenie: (0%)
-----


Cytat(trueblue @ 27.04.2018, 09:57:29 ) *
Pobierasz dane obrazka z Canvas (toDataURL), tworzysz <img> na stronie ustawiając mu jako src wynik z poprzedniego kroku, wykorzystujesz jakiś skrypt JS do skopiowania zaznaczonego obszaru do schowka.


Zrobiłem jak piszesz, ale tak jak napisał aras785, kopiowanie działa chyba tylko na tekst, bo obrazka nie za bardzo chce mi skopiować.

Kod
html2canvas(document.getElementsByClassName('table')[0]).then(function(canvas) {
    _img = document.createElement("img");
    _img.src = canvas.toDataURL();
    _o = document.body.appendChild(_img);
    _o.select();
    document.execCommand("Copy");
});
Go to the top of the page
+Quote Post
trueblue
post 27.04.2018, 10:20:48
Post #6





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Nawet gdyby działało, to źle to zrobiłeś. Trzeba stworzyć obszar, dodać do niego węzły i wtedy zaznaczyć.


--------------------
Go to the top of the page
+Quote Post
aras785
post 27.04.2018, 10:43:39
Post #7





Grupa: Zarejestrowani
Postów: 859
Pomógł: 177
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


http://owaisafaq.com/blog/demos/copier/ (u mnie nie działa biggrin.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 17:52