body onload Problem beim Include

Denniz

Erfahrenes Mitglied
Hallo Leute,
ich habe mir ein Imagemap erstellt auf der bestimmte Bereiche markiert sind. Wenn man mit der Mouse über einen diese Bereiche fährt läd sich ein neues Bild hinein, wie bei einem Rollover.
Jetzt lade ich per JS alle Bilder vor die ich für den Rollover brauche damit diese schon mal im Speicher sind.

Nun hab ich ein Problem mit der ganzen sache.
Ich habe folgendes Skript:
HTML:
<script language="JavaScript" type="text/javascript">
<!--
function BilderVorladen()
{
     document.Vorladen = new Array();
 
    if(document.images)
    {
        for(var i = 0; i < BilderVorladen.arguments.length; i++)
        {
            document.Vorladen[i] = new Image();
            document.Vorladen[i].src = BilderVorladen.arguments[i];
        }
    }
}
//-->
</script>
<script type="text/javascript">
<!--
image1 = new Image();
image1.src = "1.jpg";
image2 = new Image();
image2.src = "2.jpg";
image3 = new Image();
image3.src = "3.jpg";
image4 = new Image();
image4.src = "4.jpg";
image5 = new Image();
image5.src = "5.jpg";
image6 = new Image();
image6.src = "6.jpg";
image7 = new Image();
image7.src = "7.jpg";
image8 = new Image();
image8.src = "8.jpg";
image9 = new Image();
image9.src = "9.jpg";
image10 = new Image();
image10.src = "10.jpg";
image11 = new Image();
image11.src = "11.jpg";
image12 = new Image();
image12.src = "12.jpg";
//-->
</script>

<body onload="BilderVorladen('1.jpg','2.jpg','3.jpg','4.jpg','5.jpg','6.jpg','7.jpg','8.jpg','9.jpg','10.jpg','11.jpg','12.jpg','13.jpg');">
<img src="index.jpg" alt="image" width="420" height="561" border="0" usemap="#Map" name="start">
<map name="Map">
  <area shape="poly" coords="22,334,37,336,56,319,73,310,90,292,97,309,114,299,123,282,132,267,150,258,161,241,155,220,147,205,158,189,147,180,132,185,111,196,96,206,95,188,78,190,60,202,49,222,36,231,18,229,19,269,11,288,8,305,22,335" href="#"  onMouseOver="start.src='1.jpg'" onMouseOut="start.src='index.jpg'">
  <area shape="poly" coords="174,388,190,406,208,436,193,469,189,509,188,530,232,521,224,532,246,538,285,529,316,523,333,481,370,442,329,405,297,374,287,350,272,336,245,327,216,340,193,322,174,336,152,351,139,369,154,384,167,376" href="#" onMouseOver="start.src='3.jpg'" onMouseOut="start.src='index.jpg'">
  <area shape="poly" coords="338,248,338,264,352,264,368,250,382,247,398,244,387,226,393,209,382,190,381,172,358,149,370,125,350,126,335,115,323,133,295,136,275,128,263,135,260,145,281,164,278,182,293,197,292,213,312,216,331,226" href="#" onMouseOver="start.src='5.jpg'" onMouseOut="start.src='index.jpg'">
</map>

Die onload Funktion steht im Body tag. Nun ist es so das ich dieses Dokument per PHP Include ins Hauptdokument lade und in diesen gibt es ja schon ein body Tag. Sprich ich habe jetzt zwei Body Tags.
Naja, habe das ding in mehrern Browsern getestet und es klappt auch so, aber ganz valide ist es ja nicht.
Gibts eine Möglchkeit die onload Methode direkt ins Skript zu schreiben?

-Denniz
 
Erstens: Diesen Teil kannst du ganz rausschmeißen:
Code:
<script type="text/javascript">
<!--
image1 = new Image();
image1.src = "1.jpg";
image2 = new Image();
image2.src = "2.jpg";
image3 = new Image();
image3.src = "3.jpg";

...

image12 = new Image();
image12.src = "12.jpg";
//-->
</script>

Zweitens: Dein Problem lässt sich wahrscheinlich dadurch lösen:
HTML:
<script language="JavaScript" type="text/javascript">
<!--
function BilderVorladen() {
    document.Vorladen = new Array();
    if(document.images)    {
        for(var i = 0; i < BilderVorladen.arguments.length; i++) {
            document.Vorladen[i] = new Image();
            document.Vorladen[i].src = BilderVorladen.arguments[i];
        }
     }
}

window.onload = function init() {
    BilderVorladen('1.jpg','2.jpg','3.jpg','4.jpg','5.jpg','6.jpg','7.jpg','8.jpg','9.jpg','10.jpg','11.jpg','12.jpg','13.jpg');
}
//-->
</script>

Drittens: Das "language"-Attribut in "<script>"-Tags ist depreciated, soll heißen: Er sollte nicht mehr verwendet werden.
 
Viertens: Wenn du mit PHP etwas im body-Element eines Dokuments includest, dann geschieht dies unter Ausschluß eines weiteren Dokumentkörpers.
 

Neue Beiträge

Zurück