Funktion eigentlich onLoad aber mitten in HTML Datei
Jeena Paradies
- javascript
0 Severin
Ich will beim laden einer Datei(index.htm) eine JS-Funktion die in bilder.js ist ausführen. Wenn die ganze Funktion in der Datei(index.htm) drin ist, dann funktioniert alles wunderbar, es wird per Zufall ein Bild ausgewählt, das dann angezeigt wird. Jetzt wird das oben im Menü sein, und sich auf jeder Seite wiederholen, deshalb dachte ich dass man es doch lieber in eine extra Datei packen sollte(bilder.js), und sie dann nur aufrufen. Ich kapiere aber überhaupt nicht welcher von den EventHandlern oder wie sie heißen dafür zuständig ist. onLoad währe ja genau das was ich brauche, doch leider kann man das ja nur in <body> oder <frame> reintun. Ich will das aber in eine Tabelle reintun, damit neben dem Logo ein zufällig gewähltes Bild erscheint.
Könnte mir einer von euch eventuell behilflich sein, und mir sagen nach was ich eigentlich suchen soll?
Jeena Paradies
Hallo,
1)Was geht nicht?
2)Was hast du schon versucht?
3)Kannst du mir erklären wiso du eine HTML Datei ohne body hast?
gruß,
Severin
1)Was geht nicht?
2)Was hast du schon versucht?
3)Kannst du mir erklären wiso du eine HTML Datei ohne body hast?
Hab mich anscheinend völlig falsch ausgedrückt. Ich poste mal den Quellcode
bilder.js
----------------------------
function Vlona() {
var j,l="",m="",p="",q="",z="",list= new Array()
list[list.length]='vlona01.jpg';
list[list.length]='vlona02.jpg';
list[list.length]='vlona03.jpg';
list[list.length]='vlona04.jpg';
j=parseInt(Math.random()*list.length);
j=(isNaN(j))?0:j;
if (list[j].indexOf('?')==-1) {
document.write("<img src='"+list[j]+"'>");
}
else {
nvp=list[j].substring(list[j].indexOf('?')+2).split('&');
for(var i=0;i<nvp.length;i++) {
sub=nvp[i].split('=');
switch(sub[0]) {
case 'link':
l="<a href='"+unescape(sub[1])+"'>";
p="</a>";
break;
case 'target':
q=" target='"+unescape(sub[1])+"'";
break;
default:
m+=" "+sub[0]+"='"+unescape(sub[1])+"'";
break;
}
}
z=(l!="")?((q!="")?l.substring(0,l.length-1)+q+">":l):"";
z+="<img src='"+list[j].substring(0,list[j].indexOf('?'))+"'"+m+">"+p;
document.write(z);
}
}
index.htm
----------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Koorbash</title>
</head>
<body text="#fff4ca" bgcolor="#4b2d22">
<table align="center" style="height:100%; background-image:url(seite.png); background-repeat:repeat-y; padding:0" cellpadding="0" cellspacing="0" border=0>
<colgroup>
<col width="140">
<col width="606">
<col width="6">
</colgroup>
<tr style="height:169px" valign="top">
<td><img src="back.png" border="0" alt=""></td>
<td style="background-image:url(back-top.jpg); background-repeat:repeat-x; padding-left:10px; padding-top:10px;">
########### Hier soll die Funktion ein Bild hinzeichnen z. b. vlona1.png###############
<table width="100%" style="padding-top:0px" border=0><tr><td>
<a href="news.htm"><img src="menue/news.png" border="0" alt=""></a></td><td>
<a href="band.htm"><img src="menue/band.png" border="0" alt=""></a></td><td>
<a href="multimedia.htm"><img src="menue/multimedia.png" border="0" alt=""></a></td><td>
<a href="vlonaslog.htm"><img src="menue/vlonaslog.png" border="0" alt=""></a></td><td>
<a href="tour.htm"><img src="menue/tour.png" border="0" alt=""></a></td><td>
<a href="merchandise.htm"><img src="menue/merchandise.png" border="0" alt=""></a></td><td>
<a href="write.htm"><img src="menue/write.png" border="0" alt=""></a></td><td>
<a href="links.htm"><img src="menue/links.png" border="0" alt=""></a>
</td><td>
</table>
</td>
<td><img src="top-li.png" border="0" alt=""></td>
</tr>
<tr valign="center" align="right">
<td></td>
<td>
</td>
</tr><tr style="height:31px" valign="bottom"><td><img src="back-unt.png" border="0" alt=""></td><td><img src="hell.png" width="610" height="14" border="0"></td>
<td><img src="top-li-unt.png" border="0" alt=""></td></tr>
</table>
</body>
</html>
Hallo Jeena
<td style="background-image:url(back-top.jpg); background-repeat:repeat-x; padding-left:10px; padding-top:10px;">
einfach schreiben:
<script type="text/javascript">
<!--
Vlona();
//-->
</script>
auch wenn eine Funktion in eine externe Datei ausgelagert ist, kannst du diese im HTML-Dokument notieren und brauchst nicht auf den onload-Event warten.
Voraussetzung die externe Datei wird vor dem Funktionsaufruf geladen.
Viele Grüße
Antje
<script type="text/javascript">
<!--
Vlona();
//-->
</script>
auch wenn eine Funktion in eine externe Datei ausgelagert ist, kannst du diese im HTML-Dokument notieren und brauchst nicht auf den onload-Event warten.
soll das oben in <head></head> rein?
<script src="quadrat.js" type="text/javascript">
</script>
Irgendwie funktioniert es bei mir nicht.
Voraussetzung die externe Datei wird vor dem Funktionsaufruf geladen.
Wie ist das gemeint?
1)Was geht nicht?
2)Was hast du schon versucht?
3)Kannst du mir erklären wiso du eine HTML Datei ohne body hast?
Hab mich anscheinend völlig falsch ausgedrückt. Ich poste mal den Quellcodebilder.js
function Vlona() {
var j,l="",m="",p="",q="",z="",list= new Array()
list[list.length]='vlona01.jpg';
list[list.length]='vlona02.jpg';
list[list.length]='vlona03.jpg';
list[list.length]='vlona04.jpg';j=parseInt(Math.random()*list.length);
j=(isNaN(j))?0:j;
if (list[j].indexOf('?')==-1) {
document.write("<img src='"+list[j]+"'>");
}
else {
nvp=list[j].substring(list[j].indexOf('?')+2).split('&');
for(var i=0;i<nvp.length;i++) {
sub=nvp[i].split('=');
switch(sub[0]) {
case 'link':
l="<a href='"+unescape(sub[1])+"'>";
p="</a>";
break;
case 'target':
q=" target='"+unescape(sub[1])+"'";
break;
default:
m+=" "+sub[0]+"='"+unescape(sub[1])+"'";
break;
}
}
z=(l!="")?((q!="")?l.substring(0,l.length-1)+q+">":l):"";
z+="<img src='"+list[j].substring(0,list[j].indexOf('?'))+"'"+m+">"+p;
document.write(z);
}
}index.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Koorbash</title></head>
<body text="#fff4ca" bgcolor="#4b2d22">
<table align="center" style="height:100%; background-image:url(seite.png); background-repeat:repeat-y; padding:0" cellpadding="0" cellspacing="0" border=0>
<colgroup>
<col width="140">
<col width="606">
<col width="6">
</colgroup>
<tr style="height:169px" valign="top">
<td><img src="back.png" border="0" alt=""></td>
<td style="background-image:url(back-top.jpg); background-repeat:repeat-x; padding-left:10px; padding-top:10px;">########### Hier soll die Funktion ein Bild hinzeichnen z. b. vlona1.png###############
Dann musst du genau hier die Funktion einfügen:
<script type="text/javascript">
Vlona()
</script>
Struppi.
Dann musst du genau hier die Funktion einfügen:
<script type="text/javascript">
Vlona()
</script>
Und woher weiß die Datei, dass sich die Funktion in bilder.js befindet?
bilder.js
--------------------------------------------------
function Vlona() {
var j,l="",m="",p="",q="",z="",list= new Array()
list[list.length]='vlona01.jpg';
list[list.length]='vlona02.jpg';
list[list.length]='vlona03.jpg';
list[list.length]='vlona04.jpg';
j=parseInt(Math.random()*list.length);
j=(isNaN(j))?0:j;
if (list[j].indexOf('?')==-1) {
document.write("<img src='"+list[j]+"'>");
}
else {
nvp=list[j].substring(list[j].indexOf('?')+2).split('&');
for(var i=0;i<nvp.length;i++) {
sub=nvp[i].split('=');
switch(sub[0]) {
case 'link':
l="<a href='"+unescape(sub[1])+"'>";
p="</a>";
break;
case 'target':
q=" target='"+unescape(sub[1])+"'";
break;
default:
m+=" "+sub[0]+"='"+unescape(sub[1])+"'";
break;
}
}
z=(l!="")?((q!="")?l.substring(0,l.length-1)+q+">":l):"";
z+="<img src='"+list[j].substring(0,list[j].indexOf('?'))+"'"+m+">"+p;
document.write(z);
}
}
index.htm
-----------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Koorbash</title>
<script type="text/javascript" src="bilder.js"></script>
</head>
<body text="#fff4ca" bgcolor="#4b2d22">
<table align="center" style="height:100%; background-image:url(seite.png); background-repeat:repeat-y; padding:0" cellpadding="0" cellspacing="0" border=0>
<colgroup>
<col width="140">
<col width="610">
<col width="6">
</colgroup>
<tr style="height:169px" valign="top">
<td><img src="back.png" border="0" alt=""></td>
<td style="background-image:url(back-top.jpg); background-repeat:repeat-x; padding-left:10px; padding-top:10px;">
<script type="text/javascript">
<!--
Vlona();
//-->
</script>
<table width="100%" style="padding-top:0px" border=0><tr><td>
<a href="news.htm"><img src="menue/news.png" border="0" alt=""></a></td><td>
<a href="band.htm"><img src="menue/band.png" border="0" alt=""></a></td><td>
<a href="multimedia.htm"><img src="menue/multimedia.png" border="0" alt=""></a></td><td>
<a href="vlonaslog.htm"><img src="menue/vlonaslog.png" border="0" alt=""></a></td><td>
<a href="tour.htm"><img src="menue/tour.png" border="0" alt=""></a></td><td>
<a href="merchandise.htm"><img src="menue/merchandise.png" border="0" alt=""></a></td><td>
<a href="write.htm"><img src="menue/write.png" border="0" alt=""></a></td><td>
<a href="links.htm"><img src="menue/links.png" border="0" alt=""></a>
</td><td>
</table>
</td>
<td><img src="top-li.png" border="0" alt=""></td>
</tr>
<tr valign="center" align="right">
<td></td>
<td>
</td>
</tr><tr style="height:30px" valign="bottom"><td><img src="back-unt.png" border="0" alt=""></td><td><img src="hell.png" width="610" height="14" border="0"></td>
<td><img src="top-li-unt.png" border="0" alt=""></td></tr>
</table>
</body>
</html>
---------------------------------------------
So wie es da oben ist funktioniert es nicht, was hab ich da falsch gemacht?
Dann musst du genau hier die Funktion einfügen:
<script type="text/javascript">
Vlona()
</script>Und woher weiß die Datei, dass sich die Funktion in bilder.js befindet?
Weil du sie im head einbindest?
So wie es da oben ist funktioniert es nicht, was hab ich da falsch gemacht?
Funktioniert nicht, ist eine ziemlich nutzlose Fehlerbeschreibung. Du magst vielleicht mal hhier vorbeischauen http://glasgoogle.de um etwas genauer sagen zu können, was nicht funktioniert.
Struppi.
Es soll im endeffekt so aussehen http://home.arcor.de/maedchen.schluckt.net/mp3/koorbash/index.htm aber ich will das das ganze JavaScript in einer externen Datei ist, und nicht in jeder html Datei. Ich denke das würde platz sparen, und bandbreite. In Zukunft will ich auch alles in eine zentrale css datei reintun, damit das auch weg ist.