11548 sujets

JavaScript, DOM et API Web HTML5

Hello,
Je suis en train de créer un nouveau site avec une architecture classique en php : en-tête, menu gauche, contenu, pied de page.
Mon menu est géré par un javascript que l'on m'a donné.
Le problème, c'est que quand j'ouvre un lien du menu, il recharge toute la page et le menu se referme... Il ne retient pas où le menu était ouvert.
De plus, j'ai une bannière flash (un bête fondu enchainé d'images) dans l'en-tête... Lorsque je clique sur n'importe quel lien, le flash recommence...
Je cherche donc une solution. L'idéal serait que quand je clique sur un lien du menu, il n'y ai que la partie contenu qui se recharge... mais je ne sais pas du tout comment faire...
Sinon, il y a peut-être moyen de changer le code du menu pour qu'il se souvienne de l'arborescence avant le clic sur le lien...
Merci d'avance d'aider un newbie dans le javascript


A+

Greg Smiley lol
up up up.
Personne n'a didée?

voci le code

if(!window.Node){
	var Node = {ELEMENT_NODE : 1, TEXT_NODE : 3};
}
function checkNode(node, filter){
	return (filter == null || node.nodeType == Node[filter] || node.nodeName.toUpperCase() == filter.toUpperCase());
}
function getChildren(node, filter){
	var result = new Array();
	var children = node.childNodes;
	for(var i = 0; i < children.length; i++){
		if(checkNode(children[i], filter)) result[result.length] = children[i];
	}
	return result;
}
function getChildrenByElement(node){
	return getChildren(node, "ELEMENT_NODE");
}
function getFirstChild(node, filter){
	var child;
	var children = node.childNodes;
	for(var i = 0; i < children.length; i++){
		child = children[i];
		if(checkNode(child, filter)) return child;
	}
	return null;
}
function getFirstChildByText(node){
	return getFirstChild(node, "TEXT_NODE");
}
function getNextSibling(node, filter){
	for(var sibling = node.nextSibling; sibling != null; sibling = sibling.nextSibling){
		if(checkNode(sibling, filter)) return sibling;
	}
	return null;
}
function getNextSiblingByElement(node){
	return getNextSibling(node, "ELEMENT_NODE");
}

var activeMenu = null;

function showMenu(){
	if(activeMenu){
		activeMenu.className = "";
		getNextSiblingByElement(activeMenu).style.display = "none";
	}
	if(this == activeMenu){
		activeMenu = null;
	}else{
		this.className = "active";
		getNextSiblingByElement(this).style.display = "block";
		activeMenu = this;
	}
	return false;
}
function initMenu(){
	var menus, menu, text, a, i;
	menus = getChildrenByElement(document.getElementById("menu"));
	for(i = 0; i < menus.length; i++){
		menu = menus[i];
		text = getFirstChildByText(menu);
		a = document.createElement("a");
		menu.replaceChild(a, text);
		a.appendChild(text);
		a.href = "#";
		a.onfocus = function(){this.blur()};
	}
}
if(document.createElement) window.onload = initMenu;
function MenuDisplay()
{
	document.write('<ul id="menu">');
		document.write('<li class="puce_noeud">Présentation');
		  document.write('<ol>');
		    document.write('<li class="puce_sous_cat"><a href=index.php?page=objectifs#>Missions et Objectifs</a></li>');
		    document.write('<li class="puce_sous_cat"><a href=index.php?page=accueil#>accueil</a></li>');
		  document.write('</ol>');
		  document.write('<div class="separateur"></div>');
		document.write('</li>');
	
		
	document.write('</ul>');
}
[/i][/i][/i][/i]