Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Dziwne zachowanie javascript - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: xHTML, CSS, JavaScript (https://www.webmastertalk.pl/forum-xhtml-css-javascript)
+--- Wątek: Dziwne zachowanie javascript (/thread-dziwne-zachowanie-javascript)



Dziwne zachowanie javascript - dahel - 05-11-2012

Z góry wybaczcie za taki temat, nie wiedziałem jak zatytułować posta. Otóż podczas zagłębiania się w javascript dziwnego coś sie wydarzyło. W każdym razie nigdzie nie natknąłem sie na opis tego. Krótki kawałek kodu:
[undefined=undefined]<body>
<div id="test">
</div>
<script type="text/javascript">
alert(test);
</script>
</body>[/undefined]
Alert w tym wypadku wyświetla mi "HTMLDivElement". W każdej przeglądarce. Bez żadnego getElementById, beż załączonej jakiejkolwiek biblioteki. Czy przeoczyłem ten ważny punkt i jest to normalne? (otagowanie kodu w poście coś się popsuło, albo ja mam na prawdę paskudny dzień)


RE: Dziwne zachowanie javascript - dahel - 05-11-2012

Tak, tak. To wszystko jasne. Ja po prostu nie wiedziałem że do zmiennej x automatycznie przypisywana jest referencja do elementu o takimże id. Zatem gdzieś mi to musiało umknąć.


RE: Dziwne zachowanie javascript - Kartofelek - 05-11-2012

Bo nie zwróci. No co wy panowie. Nigdy tak nie było i być nie może. Daj linka bo aż sam chcę zobaczyć.


RE: Dziwne zachowanie javascript - Pedro84 - 05-11-2012

Kartofelek, zwraca:
Kod:
<body>
<div id="test"></div>
<script type="text/javascript">console.log(test);</script>
</body>



RE: Dziwne zachowanie javascript - Kartofelek - 05-11-2012

Nie wiedziałem tego. Muszę poczytać o tym :}
Co ciekawe:

Kod:
<a href="sssss" id="test">pppp</a>
    
<script type="text/javascript">
        alert(test); //adres linka
        alert(window.test); //undefined
</script>

Dobra poczytałem.
http://javascript.info/tutorial/searching-elements-dom
To jest nic.

Popatrzcie lepiej na pkt 2

In Internet Explorer that may lead to errors, see the example below.
Kod:
    <div id="a">test</div>
    <script>
      a = 5 // (x)
      alert(a)
    </script>

If you run it in IE, it won’t work. Line (x) is erroneous, because:
1 a references the DIV (it’s ok).
2 IE-generated referenes can’t be overwritten (ah, bad bad!).