jule23
New member
Hi, ich hab ein ganz ähnliches (Verständnis)Problem
Auch bei mir: habe nen fetten JS-Teil in meinem Code, will ihn auslagern.
Binde ihn ein mit <script type="text/javascript" language="JavaScript" src="navigation.js"></script> im <head>-Bereich. Erstelle im selben Ordner eine Datei namens "navigation.js" und kopiere alles zwischen den <script>-Tags da hinein.
Resultat: das JS funzt nimmer.
Testweise habe ich in die selbe Datei eine andere Funktion eingebunden (Quadrat einer Eingabe berechnen und in einem alert-Popup anzeigen), das funktionierte.
Wenn ich das script an der Stelle im body einbinde, wo es "gebraucht wird", geht es allerdings. Dabei dachte ich, es muss in den head? *verwirrt sei*
Weiß einer, woran das liegt? Weshalb es nicht reicht, das im head einzubinden?
Hier ist die navigation.js, falls das zur Klärung beiträgt:
......................................................o°
var submenu=new Array()
//Set submenu contents. Expand as needed. For each content, make sure everything exists on ONE LINE. Otherwise, there will be JS errors.
submenu[0]='Inhalt 1'
submenu[1]='Inhalt 2'
submenu[2]='Inhalt 3'
//Set delay before submenu disappears after mouse moves out of it (in milliseconds)
var delay_hide=100
var menuobj=document.getElementById? document.getElementById("describe") : document.all? document.all.describe : document.layers? document.dep1.document.dep2 : ""
function showit(which){
clear_delayhide()
thecontent=(which==-1)? "" : submenu[which]
if (document.getElementById||document.all)
menuobj.innerHTML=thecontent
else if (document.layers){
menuobj.document.write(thecontent)
menuobj.document.close()
}
}
function resetit(e){
if (document.all&&!menuobj.contains(e.toElement))
delayhide=setTimeout("showit(-1)",delay_hide)
else if (document.getElementById&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
delayhide=setTimeout("showit(-1)",delay_hide)
}
function clear_delayhide(){
if (window.delayhide)
clearTimeout(delayhide)
}
function contains_ns6(a, b) {
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}
Es wäre zwar nicht tragisch, das im body zu notieren, aber ich verstehe nicht warum, deshalb wäre's fein wenn einer ne Erklärung hätte
Auch bei mir: habe nen fetten JS-Teil in meinem Code, will ihn auslagern.
Binde ihn ein mit <script type="text/javascript" language="JavaScript" src="navigation.js"></script> im <head>-Bereich. Erstelle im selben Ordner eine Datei namens "navigation.js" und kopiere alles zwischen den <script>-Tags da hinein.
Resultat: das JS funzt nimmer.
Testweise habe ich in die selbe Datei eine andere Funktion eingebunden (Quadrat einer Eingabe berechnen und in einem alert-Popup anzeigen), das funktionierte.
Wenn ich das script an der Stelle im body einbinde, wo es "gebraucht wird", geht es allerdings. Dabei dachte ich, es muss in den head? *verwirrt sei*
Weiß einer, woran das liegt? Weshalb es nicht reicht, das im head einzubinden?
Hier ist die navigation.js, falls das zur Klärung beiträgt:
......................................................o°
var submenu=new Array()
//Set submenu contents. Expand as needed. For each content, make sure everything exists on ONE LINE. Otherwise, there will be JS errors.
submenu[0]='Inhalt 1'
submenu[1]='Inhalt 2'
submenu[2]='Inhalt 3'
//Set delay before submenu disappears after mouse moves out of it (in milliseconds)
var delay_hide=100
var menuobj=document.getElementById? document.getElementById("describe") : document.all? document.all.describe : document.layers? document.dep1.document.dep2 : ""
function showit(which){
clear_delayhide()
thecontent=(which==-1)? "" : submenu[which]
if (document.getElementById||document.all)
menuobj.innerHTML=thecontent
else if (document.layers){
menuobj.document.write(thecontent)
menuobj.document.close()
}
}
function resetit(e){
if (document.all&&!menuobj.contains(e.toElement))
delayhide=setTimeout("showit(-1)",delay_hide)
else if (document.getElementById&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
delayhide=setTimeout("showit(-1)",delay_hide)
}
function clear_delayhide(){
if (window.delayhide)
clearTimeout(delayhide)
}
function contains_ns6(a, b) {
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}
Es wäre zwar nicht tragisch, das im body zu notieren, aber ich verstehe nicht warum, deshalb wäre's fein wenn einer ne Erklärung hätte
Zuletzt bearbeitet: