Archivlink: javarea.de Forum > JavaScript > Cascade Menu Fehler
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Cascade Menu Fehler

Pages: [1]

geschrieben von Gast am 18.02.2010 - 16:00
Hallo zusammen,

ich habe veruscht das \"Cascade Menu\" aus der Script Sammlungs Kategorie Navigation einzubauen, allerdings gibt mir folgende Zeile immer einen Fehler zurück:

obj = document.getElementById(name).style.clip = \'rect(0, \' + width + \', \' + (nowv + 1) + \', 0)\';

die Fehlermeldung besag \"Ungültiges Argument.\" mehrfach in folge bis es abbricht.
Bzw. kann man statt Texte diesses Menü auch mit Images verwenden? Und vorallem wie ist der fehler zu beheben?

geschrieben von Danny am 18.02.2010 - 16:04
Hallo welchem Browser tritt der Fehler auf ?
Und hast du einen Link / Quellcode der Seite in die du das Menü eingebaut hast ? Vielleicht ist beim Einbau auch etwas schief gegangen.


Gruß danny

geschrieben von Gast am 18.02.2010 - 16:13
Der Fehler tritt bereits beim Kompilieren in Visual Studio 2008 auf - der Explorer wäre IE8 unter Win7. Beim Kopieren kann ja nicht wirklich etwas schief gehen ;)

geschrieben von Danny am 18.02.2010 - 16:22
Oh das wird also keine "normale" Webseite?

Kenne VisualStudio nicht wirklich und in Verbindung mit Javascript noch viel weniger... Ich denke es wäre für dich hilfreicher diese Frage in einem VisualStudio Forum zu fragen. Ich kann mir nur vorstellen, dass Javascript im VS nicht so wie im Browser funktioniert .. also z.B. das document.getElementById() anders behandelt werden muss..


Sorry, Gruß Danny

geschrieben von Gast am 18.02.2010 - 16:24
Nene es wird schon eine normale Seite, VS ersetzt hierbei nur die Editor umgebung. Auch wenn es über Editor gespeichert und geöffnet wird ist das menü zwar da, funktioniert aber nicht (zumindest der drop down nicht)

geschrieben von Danny am 18.02.2010 - 16:29
Ok,
hast du die Seite online bzw kannst das "Erzeugnis" von VS hochladen ?

geschrieben von Gast am 18.02.2010 - 16:41
Hab die Datei mal ebend bei RS hoch geladen war die schnellste alternative:
http://rapidshare.com/files/3524150....e.htm.html

geschrieben von Gast am 18.02.2010 - 23:23
hm da keine Antwort mehr kommt geh ich mal davon aus das auch hier keiner die Lösung weiß? :/ Schade...

geschrieben von Danny am 18.02.2010 - 23:29
Sorry bin leider noch nicht dazu gekommen.. stecke gerade mitten in den Prüfungen .. Würde mich morgen dem Problem annehmen ..

Gruß Danny

geschrieben von Gast am 18.02.2010 - 23:34
oh achso den vielen dank schonmal =)

geschrieben von Gast am 19.02.2010 - 12:08
Hab das ganze mal geupdatet sieht jetzt wie folgt aus:

http://rapidshare.com/files/3527975....e.htm.html

Das Menü macht jedoch weiterhin den alten fehler: eigentlich sollte dies Menü auf den Grauen Balken links um die Seite zu vervollständigen - allerdings scrollt auch der text noch aus der Area wo er hin gehöhrt. :/

So sollte es aussehen:
http://img706.imageshack.us/img706/....inhalt.jpg

geschrieben von Danny am 19.02.2010 - 16:42
Hallo,
habe mir den Code angeschaut. Das Problem liegt am Doctype. Du verwendest XHTML, dort sind aber die JS Funktionen document.write Object.innerHTML usw. verboten, da sie invaliden Code erzeugen könnten.

Eine möglichkeit ist du wählst als Doctype

HTML-Quelltext
1: 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >


dann geht alles... oder das Javascript müsste angepasst werden.
Ich habe auch schonmal begonnen alle document.write nicht gleich auszugeben sondern erst in einer Variable zu speichern. Nun müsste man das Menü noch ausgeben. Es gibt zwar document.createElement aber damit erzeugt man immer nur z.B. ein <div></div> und nicht schon ganzen Code.

Vielleicht hast du daruaf einen Ansatz

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
71: 
72: 
73: 
74: 
75: 
76: 
77: 
78: 
79: 
80: 
81: 
82: 
83: 
84: 
85: 
86: 
87: 
88: 
89: 
90: 
91: 
92: 
93: 
94: 
95: 
96: 
97: 
98: 
99: 
100: 
101: 
102: 
103: 
104: 
105: 
106: 
107: 
108: 
109: 
110: 
111: 
112: 
113: 
114: 
115: 
116: 
117: 
118: 
119: 
120: 
121: 
// Link[nr] = 'position [0 is menu/1 is item] | Link name | url | target (blank|top|frame_name)'
    var Link = new Array();
    var menuid = "menu";

    Link[0] = '0|JavaScripte';
    Link[1] = '1|Link Blah|http://|';
    Link[2] = '1|Link Blah|http://|';
    Link[3] = '1|Link Blah|http://|';
    Link[4] = '1|Link Blah|http://|';
    Link[5] = '0|Html Hilfe';
    Link[6] = '1|selfhtml|http://|';
    Link[7] = '1|lerne html|http://|'
    Link[8] = '0|Sonst';
    Link[9] = '1|Gästebuch|http://|';
    Link[10] = '1|Kontakt|http://|';
    Link[11] = '0|noch mehr';
    Link[12] = '1|bla bla|';

    var height = 20; // Hoehe der Menuekoepfe
    var iheight = 15; // Hoehe der Menueelemente
    var bgc = '#e9f0f8' // background color of the item
    var over_bgc = '#fff';
    var tc = '#000' // text color of the item
    var over_tc = '#004891';
    var speed = 0;
    var timerID = 0;
    var width = 152;
    var N = (document.all) ? 0 : 1;
    var self_menu = new Array();

    function write_menu() {
        smc = 0;
        mn = 0;
        mni = 1;
        start = -1;
        
		var menu = document.getElementById(menuid);
		var menuHtml = '<div style="position: absolute;">';

        for (var i = 0; i < Link.length; i++) {
            la = Link[i].split('|');

            if (la[0] == 0) {
                if (start == 0) {
               		menuHtml += '</div>';

                    h = csmc * iheight;
                    tmn = mn; // - h;
                    self_menu[smc] = new Array(tmn, h, 0, -2);

                    smc++;
                    mn--;
                }

                csmc = 0;
					
				menuHtml += '<div id="down' + smc + '" class="menu" '
			             + 'style="top: ' + mn + 'px; height: ' + height + 'px;" '
			             + 'onclick="pull_down(' + smc + ', ' + mni + ');">'
			             + '  ' + la[1] + '</div>';
			             
           

                self_menu[smc] = new Array(mn, height, 0, mni);

                smc++;
                mni++;
                mn += height;
                start = 1;
            }
            else {
                if (start == 1) {
                    if (N)
                        mn += 2;

					menuHtml +='<div id="down' + smc + '" class="item_panel" '
				             + 'style="top: ' + mn + 'px;">';
                    

                    start = 0;
                }

				menuHtml += '<a href="' + la[2] + '"'
			             + ((la[3] != '') ? ' target="' + la[3] + '"' : '')
			             + '><div id="d' + i + '" class="item" '
			             + 'style="height: ' + iheight + 'px;'
			             + ((N) ? ' width:150px;' : '')
			             + '" onmouseover="color(this.id);" '
			             + 'onmouseout="uncolor(this.id);">'
			             + ' ' + la[1] + '</div></a>';
				
              
                csmc++;
            }
        }

        if (start == 0) {
        	menuHtml += '</div>';

		}
		menuHtml += '</div>';  		
		
		//
		// in menuHtml steht der Code der ausgegeben bzw in menu angezeigt weden müsste
		//
  		//menu.innerHTML = menuHtml;
  		
		
		if (start == 0) {
            h = csmc * iheight;
            tmn = mn + 5; // - h;
            self_menu[smc] = new Array(tmn, h, 0);
            name = 'down' + (self_menu.length - 1);

            obj = document.getElementById(name);
            obj.style.borderBottomColor = '#008';
            obj.style.borderBottomWidth = '1px';
            obj.style.borderBottomStyle = 'solid';
        }
		
    }




Gruß Danny

geschrieben von Gast am 19.02.2010 - 18:23
oh vielen dank

geschrieben von Gast am 19.02.2010 - 20:51
Ah mir ist noch was tolles aufgefallen, vielleicht weißt du ja auch dazu die Lösung:

1. Geht es dass das Menü auch wieder zugeht wenn man ein anderes aufklickt?

und

2. Kann man den \"Block Text\" auf der Rechten Seite so modifizieren wenn man ihn nach oben oder unten raus scrollt mit den entsprechenden Button das es auf der jeweils anderen seite wieder zum vorschein kommt?


MfG.

ps. entschuldige diese noob fragen bin in JS noch nen derber anfänger :>


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.