2013-09-02 23 views
20

Zasadniczo robię to, co nagłówek stwierdza, próbując zapisać zawartość div jako obrazu.Jak zapisać zawartość elementu div jako obrazu?

Mam zamiar zrobić małą aplikację online na iPada.

Jedną z funkcji, która jest koniecznością, jest przycisk "Zapisz", który umożliwia zapisanie całej strony jako obrazu i zapisanie tego obrazu na rolce aparatu iPada. Chcę zapisać pełną zawartość elementu div, a nie tylko widoczny obszar.

Wyszukiwanie przez krótki czas w Internecie, ale nie mogłem znaleźć wiele dokumentacji na nic. Znalazłem wiele na płótnie HTML5. Oto kod ułożyła:

<script> 
function saveimg() 
{ 
    var c = document.getElementById('mycanvas'); 
    var t = c.getContext('2d'); 
    window.location.href = image; 

    window.open('', document.getElementById('mycanvas').toDataURL()); 
} 
</script> 

<div id="mycanvas"> 
This is just a test<br /> 
12344<br /> 
</div> 

<button onclick="saveimg()">Save</button> 

Chociaż, ja dostaję ten błąd:

TypeError: c.getContext is not a function 

Ta aplikacja zostanie zbudowany wyłącznie z HTML, CSS i jQuery (lub innych bibliotek JavaScript).

+0

możliwy duplikat [Jak zrobić zrzut ekranu div z JavaScript?] (Http://stackoverflow.com/questions/6887183/how-to-take-screen-shot-of-a-div-with- javascript) –

+0

@GlenSwift - Dziękuję za to, ale kod przykładowy w tym poście nie działa. – Fizzix

+0

'c.getContext' nie jest funkcją, ponieważ' mycanvas' jest po prostu elementem div, a nie 'canvas'. Tylko "płótno" ma kontekst. – CheeseWarlock

Odpowiedz

13

Jest kilka tego samego pytania (1, 2). Jednym ze sposobów na to jest użycie płótna. Here's a working solution. Here można zobaczyć kilka przykładów użycia tej biblioteki.

+0

daje mi następujący błąd za każdym razem, kiedy go używam. html2canvas (document.body) .then (function (canvas) { document.body.appendChild (canvas); }); TypeError: undefined nie jest funkcją – noj

+1

Brak wystarczających informacji, aby zapewnić prawidłowe rozwiązanie problemu. Jaka funkcja jest niezdefiniowana? Kiedy i gdzie pojawia się błąd? Polecam Ci stworzyć nowe pytanie na ten temat –

Powiązane problemy