Java script fout

Status
Niet open voor verdere reacties.

janneman1234

Gebruiker
Lid geworden
25 mrt 2009
Berichten
5
Beste helpmij leden,

Ik de volgende externe java script code op mijn website staan, deze is van het beweegbare menu:

PHP:
function SDMenu(id) {
	if (!document.getElementById || !document.getElementsByTagName)
		return false;
	this.menu = document.getElementById(id);
	this.submenus = this.menu.getElementsByTagName("div");
	this.remember = true;
	this.speed = 6;
	this.markCurrent = true;
	this.oneSmOnly = false;
}
SDMenu.prototype.init = function() {
	var mainInstance = this;
	for (var i = 0; i < this.submenus.length; i++)
		this.submenus[i].getElementsByTagName("span")[0].onclick = function() {
			mainInstance.toggleMenu(this.parentNode);
		};
	if (this.markCurrent) {
		var links = this.menu.getElementsByTagName("a");
		for (var i = 0; i < links.length; i++)
			if (links[i].href == document.location.href) {
				links[i].className = "current";
				break;
			}
	}
	if (this.remember) {
		var regex = new RegExp("sdmenu_" + encodeURIComponent(this.menu.id) + "=([01]+)");
		var match = regex.exec(document.cookie);
		if (match) {
			var states = match[1].split("");
			for (var i = 0; i < states.length; i++)
				this.submenus[i].className = (states[i] == 0 ? "collapsed" : "");
		}
	}
};
SDMenu.prototype.toggleMenu = function(submenu) {
	if (submenu.className == "collapsed")
		this.expandMenu(submenu);
	else
		this.collapseMenu(submenu);
};
SDMenu.prototype.expandMenu = function(submenu) {
	var fullHeight = submenu.getElementsByTagName("span")[0].offsetHeight;
	var links = submenu.getElementsByTagName("a");
	for (var i = 0; i < links.length; i++)
		fullHeight += links[i].offsetHeight;
	var moveBy = Math.round(this.speed * links.length);
	
	var mainInstance = this;
	var intId = setInterval(function() {
		var curHeight = submenu.offsetHeight;
		var newHeight = curHeight + moveBy;
		if (newHeight < fullHeight)
			submenu.style.height = newHeight + "px";
		else {
			clearInterval(intId);
			submenu.style.height = "";
			submenu.className = "";
			mainInstance.memorize();
		}
	}, 30);
	this.collapseOthers(submenu);
};
SDMenu.prototype.collapseMenu = function(submenu) {
	var minHeight = submenu.getElementsByTagName("span")[0].offsetHeight;
	var moveBy = Math.round(this.speed * submenu.getElementsByTagName("a").length);
	var mainInstance = this;
	var intId = setInterval(function() {
		var curHeight = submenu.offsetHeight;
		var newHeight = curHeight - moveBy;
		if (newHeight > minHeight)
			submenu.style.height = newHeight + "px";
		else {
			clearInterval(intId);
			submenu.style.height = "";
			submenu.className = "collapsed";
			mainInstance.memorize();
		}
	}, 30);
};
SDMenu.prototype.collapseOthers = function(submenu) {
	if (this.oneSmOnly) {
		for (var i = 0; i < this.submenus.length; i++)
			if (this.submenus[i] != submenu && this.submenus[i].className != "collapsed")
				this.collapseMenu(this.submenus[i]);
	}
};
SDMenu.prototype.expandAll = function() {
	var oldOneSmOnly = this.oneSmOnly;
	this.oneSmOnly = false;
	for (var i = 0; i < this.submenus.length; i++)
		if (this.submenus[i].className == "collapsed")
			this.expandMenu(this.submenus[i]);
	this.oneSmOnly = oldOneSmOnly;
};
SDMenu.prototype.collapseAll = function() {
	for (var i = 0; i < this.submenus.length; i++)
		if (this.submenus[i].className != "collapsed")
			this.collapseMenu(this.submenus[i]);
};
SDMenu.prototype.memorize = function() {
	if (this.remember) {
		var states = new Array();
		for (var i = 0; i < this.submenus.length; i++)
			states.push(this.submenus[i].className == "collapsed" ? 0 : 1);
		var d = new Date();
		d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000));
		document.cookie = "sdmenu_" + encodeURIComponent(this.menu.id) + "=" + states.join("") + "; expires=" + d.toGMTString() + "; path=/";
	}
};

Deze genereerd de volgende error:

utqba.png



Dit javascript menu code is afkomstig van een website waar onder andere menu's te vinden zijn:

http://www.dynamicdrive.com/dynamicindex1/slashdot.htm


Na het veranderen van de tekst en URLs gaf dit menu de bovenstaande error, die te zien is op alle pagina's van mijn website. (het webdomain staat in de screenshot)

Zelf heb maar heel weinig kennis van javascript.
Ik hoop dat iemand dit kan oplossen, alvast bedankt.

(ps. nog meer info nodig laat het weten)




Update: Het externe javascript voor het menu, is hetzelfde als die op dynamicdrive.com staat, alleen ik heb de snelheid naar 6 verhoogt in plaats van 5.
Op de website van dynamicdrive.com waar dit menu vandaan komt word geen error gegenereed.
Zelf denk ik dat het iets te maken kan hebben met submenu''s ofzo, maar zeker ben ik hier niet van, blijft moeilijk dat javascript.
Hebben jullie suggesties dan hoor ik het wel.
 
Laatst bewerkt:
klopt je html wel?

Heb je de html ook van die website gehaald? In ieder geval moeten je buttons ook overeen komen met die van de website waar je het vandaan haalde, dan bedoel ik met name de <a> tags en eventueel de <ul> en <li>'s
 
Wat ik exact gedaan heb is de zip. file gedownload ''sdmenu.zip''
Daar heb ik als eerst de HTML code gekopiert ''alleen het menu gedeelte zonder de overige tekst en reclame''.
Toen heb ik in de HTML pagina verwezen naar het bestand sdmenu.js en sdmenu.css
Vervolgens de plaatjes upgeload en mijn URL's en tekst erin gezet.

Ik heb het Javascript na de error nog eens vergeleken om te kijken of hier verschillen inzaten ik mischien per ongeluk heb veranderd. Maar het enige was de snelheid die heb ik op 6 staan en de website op 5, dit had ik eerst weer terug veranderd maar had geen effect.
 
Ik heb ook nog eventjes met WC3 foutcorrectie geprobeert voor de html, maar dit heeft niets ook geholpen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan