![]() |
![]() ![]() |
![]() |
![]()
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: 433 Pomógł: 64 Dołączył: 29.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A Twój canvas jakie ma id?
//EDIT skrypt wrzuć pod canvas na sam dół dokumentu Ten post edytował prowseed 17.05.2012, 14:25:46 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 23.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
teraz działa, dziękuje ale czemu nie pobiera z src ?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 433 Pomógł: 64 Dołączył: 29.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Pobiera, tylko w drzewie DOM jeszcze nie ma elementu, do ktorego sie odwolujesz tutaj:
-------------------- |
|
|
![]()
Post
#5
|
|
![]() 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. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 09:31 |