Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 23.03.2012 Ostrzeżenie: (0%)
|
Witam. Nie wyświetla mi w żadnej przeglądarce zawartości znacznika canvas co robię źle ?
Kod <!doctype html> <html> <head> <link rel="stylesheet" href="de.css" /> <script src="js/custom.js"></script> </head> <body> dawdwadwd <canvas id="draw" width="500" height="300"> Wyświetli to jak canvas nie działa </canvas> </body> </html> Kod var canvas = document.getElementById('canvas');
if (canvas.getContext){ var c = canvas.getContext('2d'); c.beginPath(); c.moveTo(35, 10); c.lineTo(60, 40); c.lineTo(10, 40); c.lineTo(35, 10); c.stroke(); c.fillText('a',30,60); c.fillText('c',110,60); c.fillText('b',70,130); } Ten post edytował Gamoń 16.05.2012, 18:42:31 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%)
|
Chodzi o to, że DOM musi być załadowany. DOM to w skrócie struktura HTML zapisana dla komputera w takiej formie, żeby mógł odnajdywać elementy( np. po id, class, itd. ). W chwili, gdy chcesz się dobrać do elementu( document.getElementById('canvas') ) ten element się jeszcze nie załadował do pamięci, więc de facto go nie ma. Rozwiązaniem jest właśnie zmiana kolejności lub zostawienie tak jak jest, a w kodzie JS:
Kod onload = function(){ //tu już DOM jest załadowane - możesz wrzucić tu dotychczasowy kod } Drugi sposób jest lepszy, gdyż masz większy porządek w kodzie. Warto dodać, że zdarzenie onload zadziała, gdy załaduje się cała strona, więc DOM, ale również obrazki i inne elementy( to wada tego rozwiązania, ale dotyczy się to głównie "ciężkich" stron ). Żeby wykona zdarzenie zaraz po załadowaniu DOM musisz... poczytać jak to się robi, bo dla starszych przeglądarek są różne metody. |
|
|
|
Gamoń [JS]Nie wyświetla zawartości znacznika canvas 16.05.2012, 18:39:50
prowseed A Twój canvas jakie ma id?
//EDIT
skrypt wrzuć po... 17.05.2012, 14:24:50
Gamoń teraz działa, dziękuje ale czemu nie pobiera z src... 18.05.2012, 08:58:03
prowseed Pobiera, tylko w drzewie DOM jeszcze nie ma elemen... 18.05.2012, 11:06:18 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 21:48 |