Kezdőoldal » Számítástechnika » Weblapkészítés » Az miért van hogy csak script...

Az miért van hogy csak script tagek között működik?

Figyelt kérdés

Sziasztok: ezt a példa kódot próbáltam használni:

[link]


viszont nem működik úgy hogy ha a js kódot külön js fájlba rakom, csak akkor ha a html fájlban script tagek között.


ez miért van?


2017. ápr. 11. 19:12
1 2
 1/14 anonim ***** válasza:

Így látatlanba, a külön js fàjlt is be kell linkelned a html fájlba, hogy működjön.

Próbáld a fájl végére linkelni.

2017. ápr. 11. 19:19
Hasznos számodra ez a válasz?
 2/14 anonim ***** válasza:
Arra tippelnék, hogy a <body> tagen belül a JS-et hamarabb hívod meg, mint ahogy a "demo" ID-val rendelkező elemet definiálod, ezért a függvény nem talál semmit, és nem is módosít semmit. Jó lenne látni a HTML kódot is mindkét esetben, mutasd meg valamilyen kódfeltöltő oldal segítségével, úgy könnyebb segíteni.
2017. ápr. 11. 19:24
Hasznos számodra ez a válasz?
 3/14 anonim ***** válasza:

Gyanítom azért, mert a <head> és </head> tagek közé rakod:

[link]

ebben az esetben a szkript előbb töltődik be, mint az oldal.


Ezen okból kifolyólag a szkript nem találja a "demó" azonosítójú elemet, és dob is egy hibát a fejlesztői konzolra:

Uncaught TypeError: Cannot set property 'innerHTML' of null at script.js:6


Ha a </body> elé rakod a szkriptet

[link]

mint azt best practice-ként

[link]

javasolni is szoktak, akkor szépen lefut.

2017. ápr. 11. 19:28
Hasznos számodra ez a válasz?
 4/14 A kérdező kommentje:

a külön fájlt belinkeltem.

Illetve a demo után raktam be a script taget ahogy w3nál van.

Viszont ha külön js fájlba rakom akkor már nem működik.


itt lenne:


[link]


mondjuk ez azért vicces mert ahogy látom lefut..viszont nálam nem.

2017. ápr. 11. 19:40
 5/14 anonim ***** válasza:
Csak ez nem működik, vagy semmi sem abból ami a külön fileban van?
2017. ápr. 11. 19:51
Hasznos számodra ez a válasz?
 6/14 A kérdező kommentje:
csak ez nem működik. minden más igen.
2017. ápr. 11. 20:12
 7/14 anonim ***** válasza:
100%

Kedves kérdező: a #2-es és a #3-as hozzászólásokban elmondtuk miért nem fut le a kód, ha a <head> és </head> tagek közé rakod az egészet.


A JSFiddle trükkös: alapesetben így rakja be a kódot a <head> és </head> tagek közé:

<script type='text/javascript'>//<![CDATA[

window.onload=function(){

var x = myFunction(4, 3);


function myFunction(a, b) {

return a * b;

}

document.getElementById("demo").innerHTML = x;

}//]]>


</script>


A window.onload esemény akkor hajtódik végre, ha az oldal betöltődött, így lefut az alapesetben nem lefutó kód is.

2017. ápr. 11. 20:33
Hasznos számodra ez a válasz?
 8/14 A kérdező kommentje:

úgy nekem is megy ha script tagek közé rakom.


Nekem akkor nem müködik ha a var x = myFunction(4, 3);


function myFunction(a, b) {

return a * b;

}

document.getElementById("demo").innerHTML = x;


kódot js fájlba rakom akkor nem fut le.

2017. ápr. 11. 21:42
 9/14 anonim ***** válasza:

Kérdező: a fő gond az, hogy a <head> és </head> tagek közé kerül a szkript - akár állományba rakva:

[link]

akár a <script> és </script> közé helyezve:

[link]

mint azt már írtuk: ilyen esetben a szkript előbb fut le, mint hogy az oldal betöltődjön.


Egy esetben nem működhet még a szkript: ha külön állományból hívod meg, de az állomány nem érhető el.

2017. ápr. 11. 22:04
Hasznos számodra ez a válasz?
 10/14 A kérdező kommentje:
Igen, kulon allomanybn van a kod, de jol van meghivva. Mas koddal tokeletesen mukodik de ennel vmiert hisztizik.
2017. ápr. 11. 23:10
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!