Az miért van hogy csak script tagek között működik?
Sziasztok: ezt a példa kódot próbáltam használni:
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?
Í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.
Gyanítom azért, mert a <head> és </head> tagek közé rakod:
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
mint azt best practice-ként
javasolni is szoktak, akkor szépen lefut.
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:
mondjuk ez azért vicces mert ahogy látom lefut..viszont nálam nem.
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.
ú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.
Kérdező: a fő gond az, hogy a <head> és </head> tagek közé kerül a szkript - akár állományba rakva:
akár a <script> és </script> közé helyezve:
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.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!