x-kom hosting

getElementById nie działa

pawelek99992
utworzono
utworzono

getElementById nie działa w kodzie zamieszczonym poniżej. W konsoli błędów pokazuje "document.getElementById("canvas") is null".

<!DOCTYPE html><html><head>      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">      <title>CanvasArtist</title>      <script language="JavaScript">      document.getElementById("canvas").style.visibility = "hidden";      </script></head><body><div id="all"><form id="select"><input name="x" type="text" value="X:"><br><input name="y" type="text" value="Y:"><input type="submit" value="OK"></form><canvas id="canvas"></canvas></div></body></html>

luq
komentarz
komentarz

Bo takie ustawienia trzeba robić po załadowaniu strony (ew. drzewka DOM) - rozwiązanie -> wrzucić to w pewne zdarzenie, zadaniem domowym jest jego znalezienie.

Pisz raczej:

<script type="text/javascript">

Natomiast z:

<!DOCTYPE html>

to się jeszcze nie spotkałem

pawelek99992
komentarz
komentarz (edytowane)

A takie jest ok, bo ie nadal wyświetla ale nie ma błędu. A w Firefox też bez błędu.

<html><head>      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">      <title>CanvasArtist</title>      <script language="JavaScript">      function hiddencanvas(){      document.getElementById("canvas").style.visibility = "hidden";      }      </script></head><body><div id="all"><form id="select"><input name="x" type="text" value="X:"><br><input name="y" type="text" value="Y:"><input type="submit" value="OK"></form><canvas id="canvas" onload="hiddencanvas()"></canvas></div></body></html>
luq
komentarz
komentarz

Prawie dobrze ;)

Zdarzenie onload można łączyć jedynie z elementem <body/>. Właściwie powinieneś rozdzielać JS`a od HTMLa. Możesz to napisać w ten sposób:

<script type="text/javascript">    window.onload = function(){ // window "reprezentuje" znacznik <body/>        document.getElementById('canvas').style.visibility = 'hidden';    };</script>
pawelek99992
komentarz
komentarz

Czy to o to ci chodziło?

<html><head>      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">      <title>CanvasArtist</title>      <script language="JavaScript">      window.onload = function(){        document.getElementById('canvas').style.visibility = 'hidden';    };</script></head><body><div id="all"><form id="select"><input name="x" type="text" value="X:"><br><input name="y" type="text" value="Y:"><input type="submit" value="OK"></form><canvas id="canvas"></canvas></div></body></html>

P.S: W IE nadal się wyświetla

luq
komentarz
komentarz

Czy to o to ci chodziło?

Tak

P.S: W IE nadal się wyświetla

IE w ogóle nie ma zaimplementowanej obsługi canvasa, ale ktoś kiedyś napisał coś jak skrypt rozszerzający IE o coś podobnego. Namiarów Ci nie podam bo nie znam nawet.

pawelek99992
komentarz
komentarz

Dzięki. :)

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.