Java-script Fehler



  • Also ich binde in meine "start.htm" Seite eine Datei namens "menu.js" ein.
    Es funktioniert alles auch einwandfrei, nur ein komischer Fehler tritt auf:
    Wenn ich die Seite starte dann wird nicht der Seiteninhalt angezeigt sondern nur das Menü ohne css Angaben angezeigt. Wenn ich den Quellcode anzeigen lasse, wird in der Titel-Zeile nicht start.htm sondern F__Html_tests_Layouts_start[1]
    Das ist der richtige Pfad zu meiner Datei, wenn man die _ durch ein / ersetzt und __ durch : ersetzt.
    Allerdings verstehe ich nicht warum das [1] steht und warum überhaupt nicht start.htm steht.
    Im Quellcode steht dann nur das, was mit dem Javascript per document.write erzeugt wurde.

    Hier jetzt einmal das Java-\1:

    //Copyright by ...
    
    var menui = new Array();
    var links = new Array();
    
    menui[0] = new Array("Startseite");
    links[0] = new Array("start.php");
    menui[1] = new Array("Produkte", "Spiele > 15 €", "Spiele < 15 €", "Programme > 15 €", "Programme < 15 €");
    links[1] = new Array("produkte.php", "spm15e.php", "spw15e.php", "prm15e.php", "prw15e.php");
    menui[2] = new Array("Downloads", "Spiele", "Programme", "Java-Scripts", "Php-Scripts", "Flashfilme");
    links[2] = new Array("downloads.php", "dsp.php", "dpr.php", "djs.php", "dphps.php", "dflash.php");
    
    function init()
    {
        //Alle Initialisierungen
        var anzahl = menui.length;
    
        for(i=0; i<anzahl; i++)
        {
            //Haupt-menüpunkt erzeugen
            document.write('<img src="./Bilder/menu_logo.gif" width="15" height="15" alt="" border="0"><span id="menu'+i+'" class="mainitem"><a href='+links[i][0]+' target="_self">'+menui[i][0]+'</a></span>');
            document.write('<table bgcolor="#FF0000" class="subitem">');
            for(z=1; z<menui[i].length; z++)
            {
                document.write('<tr><td id="sub'+i+''+z+'" onmouseout="menu_out('+i+');" class="subitem" onclick="link_click('+i+','+z+');" onmouseover="highlightit('+i+','+z+'); menu_in('+i+')">'+menui[i][z]+'</td></tr>');
            }
            document.write('</table>');
        }
    
    }
    
    function menu_in(X)
    {
        //Wenn über einen Menüpunkt gefahren wird
    }
    
    function menu_out(X)
    {
        //Wenn ein Menüpunkt verlassen wird
    }
    
    function link_click(X,Y)
    {
        window.location.href=links[X][Y];
    }
    
    function highlightit(X,Y)
    {
        //Beim darüberfahren ein Aufleuchten
    }
    
    window.setTimeout("init()",0);
    

    Kann mir irgendjemand sagen wo hier der Fehler liegt?
    Ich habe so etwas nämlich auch schon mal in einem anderen Menü verwendet.



  • Hallo,
    Also wie ich das so sehe, dann kann das nicht funktionieren, weil:

    Du startest deine Funktion init() von der menu.js Datei.
    Dadurch ist das Dokument, das du mit document.write ansprichst nicht mehr deine htm-Seite sondern ein eigenes Dokument.
    Sicher willst du jetzt auch wissen, wie du dieses Problem beseitigen kanns:

    Schreibe einfach in den <body> Tag folgendes:

    <script type="text/javascript">
    <!--
    init();
    //-->
    </script>
    

    ich schätze jetzt einfach mal, dass du die Datei vor diesem Tag einbindest.

    Ich hoffe das hilft dir weiter.


Anmelden zum Antworten