Lien en javascript

Fermé
antic80 Messages postés 4751 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 - 26 sept. 2005 à 11:13
antic80 Messages postés 4751 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 - 26 sept. 2005 à 15:45
bonjour a tous

voila j'ai recuperer un code qui me permet de créer un menu dynamique

lorsque que je clic sur un lien l'auteur a mis la fonction suivante

function ClickOnItem( indexItem, texteItem )
{
alert( "T'as cliqué sur : " + texteItem )
}

ce qui fais que quand je clic il me dis sur koi j'ai cliquer

mais j'aimerai a la place que quand je clic je soit rediriger vers la page souhaité.

16 réponses

antic80 Messages postés 4751 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 1 159
26 sept. 2005 à 14:00
voici mon code complet

<html>
<head>
<!-- Importe le fichier comportants les classes de style, puis les sources du menu -->
<LINK REL="stylesheet" TYPE="text/css" HREF="Styles.css">
<SCRIPT SRC="MenuContext/MenuContext.js"></SCRIPT>
<SCRIPT SRC="MenuContext/Menus.js"></SCRIPT>
<SCRIPT SRC="MenuContext/Items.js"></SCRIPT>
<script>
function ItemFonction( index, texte )
{
alert( "Ici, on peut faire ce qu'on veux, comme cacher l'image" )
GetElement( "img3" ).style.display = "none"
}

function ClickOnItem( indexItem, texteItem)
{
window.location.href=indexItem;
}

// "evenementSouris" doit être intercepté et passé à la fonction "ShowMenu" (pour Mozilla)
function ChangeAndShowMenu_0( evenementSouris )
{
// Met le menu contextuel voulus
menuContext.ChangeMenuActif( "0" )

// Affiche le menu
// Ne pas oublier le "return" (ShowMenu retourne toujours false) pour que le menu par défaut ne s'affiche pas
return ShowMenu( evenementSouris )
}

function ChangeAndShowMenu_1( evenementSouris )
{
menuContext.ChangeMenuActif( "1" )
return ShowMenu( evenementSouris )
}

function ChangeAndShowMenu_2( evenementSouris )
{
menuContext.ChangeMenuActif( "2" )
return ShowMenu( evenementSouris )
}
function ChangeAndShowMenu_3( evenementSouris )
{
menuContext.ChangeMenuActif( "3" )
return ShowMenu( evenementSouris )
}
</script>
</head>
<!-- ici, j'ai supprimer le menu contextuel du navigateur, mais c'est pas obligatoire -->
<body onselectstart="return false" ondragstart="return false" oncontextmenu="return false">
<table border="1" bgcolor="" width="100%" height="100%">
<tr>
<td width="">
<table border="1" bgcolor="" width="100%" height="100%">
<tr>
<td width="">
<td width="">
<table border="1" bgcolor="" width="100%">
<tr>
<td width="">




<img id="img1" src="Images/1.gif"></img>
<img id="img2" src="Images/4.gif"></img>
<img id="img3" src="Images/5.gif"></img>
<img id="img4" src="Images/06.gif"></img>
<script>
// Fait appel aux fonctions permettant de modifier le menu actif avant de l'afficher
// Il faut absolument capturer les évènements de cette manière pour que les propriétés de la souris
// soient passés à la fonction ShowMenu_0 (inutile pour IE, mais Netscape en a besoin)
GetElement( "img1" ).oncontextmenu = ChangeAndShowMenu_0
GetElement( "img2" ).oncontextmenu = ChangeAndShowMenu_1
GetElement( "img3" ).oncontextmenu = ChangeAndShowMenu_2
GetElement( "img4" ).oncontextmenu = ChangeAndShowMenu_3
// Crée le premier menu
var menu1 = menuContext.Add( "MenuDegrade" )

// Ajoute un sous-menu (grâce à "MakeSubMenu")
// Ici, on ne veut pas appeler de fonction lors d'un click donc : ""

menu1.Add( "", "Item", "ItemDegrade", "ItemOnFocus" ).SetFunction( "ClickOnItem" )

menu1.Add( "", "Item", "ItemDegrade", "ItemOnFocus" ).SetFunction( "ClickOnItem" )
var menu2 = menuContext.Add( "MenuDegrade" )

// Ajoute un sous-menu (grâce à "MakeSubMenu")
// Ici, on ne veut pas appeler de fonction lors d'un click donc : ""

menu2.Add( "", "Menu", "ItemDegrade", "ItemOnFocus" ).SetFunction( "ClickOnItem" )

menu2.Add( "", "Item", "ItemDegrade", "ItemOnFocus" ).SetFunction( "ClickOnItem" )

var menu3 = menuContext.Add( "MenuDegrade" )

// Ajoute un sous-menu (grâce à "MakeSubMenu")
// Ici, on ne veut pas appeler de fonction lors d'un click donc : ""

menu3.Add( "", "bienvenue", "ItemDegrade", "ItemOnFocus" ).SetFunction( "ClickOnItem" )

menu3.Add( "", "ca va", "ItemDegrade", "ItemOnFocus" ).SetFunction( "ClickOnItem" )

var menu4 = menuContext.Add( "MenuDegrade" )

// Ajoute un sous-menu (grâce à "MakeSubMenu")
// Ici, on ne veut pas appeler de fonction lors d'un click donc : ""

menu4.Add( "", "hello", "ItemDegrade", "ItemOnFocus" ).SetFunction( "ClickOnItem" )

menu4.Add( "", "Item", "ItemDegrade", "ItemOnFocus" ).SetFunction( "ClickOnItem" )


menuContext.Start( false )
</script>



</td>
</tr>
</table>

</td>

</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

je fais comment s'il te plais pour mes liens
5
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
26 sept. 2005 à 14:13
En fait, j'aurais plutot besoin de tes javascripts, donc le plus simple à mon avis c'est que tu me donnes l'adresse ou tu les as trouvés, que j'aille voir directement là-bas.

Et j'ai juste un question, c'est quoi comme type de menu, un menu de navigation, ou un menu contextuel (clique droit) ?
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
26 sept. 2005 à 11:56
En fait, si tu veux faire un lien tout simple, je te déconseil d'utiliser javascript.

Le html tout simple permet de faire des liens, en utilisant :
<a href="lapage/outu/veuxaller.html">Texte du lien</a>

et avec ça tu aura des "vrais" liens.

Sinon, pour continuer avec le javascript, c'est simplement en appelant la fonction que tu précise le paramètre :
function ClickOnItem(indexItem) 
{ 
window.location.href=indexItem;  
}
et lorsque tu veux appeler le lien :
ClickOnItem("veuxaller.html")

2
antic80 Messages postés 4751 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 1 159
26 sept. 2005 à 12:02
excuse moi mais j'ai un peu de mal

je sais que le html c plus simple mais je souhaite vraiment un menu dynamique

voici par exemple la conception d'une partie du menu

var menu3 = menuContext.Add( "MenuDegrade" )

menu3.Add( "", "page1", "ItemDegrade", "ItemOnFocus" ).SetFunction( "ClickOnItem" )

menu3.Add( "", "page2", "ItemDegrade", "ItemOnFocus" ).SetFunction( "ClickOnItem" )

par rapport a ta fonction je vois comment faire pour que si je clic sur page1 il m'ouvre page1.html ou si je clic sur page 2 il m'ouvre page2.html

merci de m'aider
1
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
26 sept. 2005 à 11:32
Salut,

Tu peux utiliser la méthode javascript window.location.href='' comme ça :
function ClickOnItem( indexItem, texteItem ) 
{ 
window.location.href=indexItem;  
}

@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
antic80 Messages postés 4751 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 1 159
26 sept. 2005 à 11:36
je precise comment le nom de la page car chaque lien aura une page différente
0
antic80 Messages postés 4751 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 1 159
26 sept. 2005 à 15:45
merci Erdnax je vais tenter de me pencher sur ton site
je te tiens au courant
0
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
26 sept. 2005 à 12:30
D'accord, alors essaye ça :

Tu garde cette fonction comme ça :

function ClickOnItem( indexItem, texteItem ) 
{ 
window.location.href=indexItem;  
}


Puis, dans ton menu, il faut préciser, à mon avis, le texte et l'adresse du lien:

menu3.Add( "AMonAvisTexte", "page1.htm", "ItemDegrade", "ItemOnFocus" ).SetFunction( "ClickOnItem" )


Mais je pourrai mieux t'aider en ayant le script sous les yeux, parce que là je sais pas comment son crées les fonctions. Donc si ton site ou tout du moins une partie est en ligne, ce serait cool de me filer l'adresse.
-1
antic80 Messages postés 4751 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 1 159
26 sept. 2005 à 14:19
c un menu contextuel clic droit

voici le lien directement de la page mais tu dois etre inscrit pour pouvoir recuperer le code

http://www.javascriptfr.com/code.aspx?ID=25023
-1
antic80 Messages postés 4751 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 1 159
26 sept. 2005 à 14:20
sinon je peux t'envoyer direct le zip si tu es d'accord
-1
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
26 sept. 2005 à 14:27
Je crois juste que tu te compliques la vie :P

En fait, au vue de tes questions, je dirais que tu est débutant, et que ce script n'est pas franchement adapté. Suit le lien à la fin de mon message, tu devrais pouvoir t'en sortir bien plus facilement.

Ce script est généré sur la page même ou tu le trouves, tu n'as qu'a remplir les mots que tu veux afficher, et les liens (adresses) vers les pages correspondantes. Simple non ? Un copier coller lorsque tu as fini, et le tour est joué ;).

http://www.editeurjavascript.com/scripts/scripts_navigation_1_113.php

@+
-1
antic80 Messages postés 4751 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 1 159
26 sept. 2005 à 14:34
j'avais deja vu ce script mais c'est pas vraiment ce que je cherche

en effet en bas de page je souhaite afficher 5 images et chaque image dois fournir un menu contextuel différents juste en dessous
-1
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
26 sept. 2005 à 15:02
Alors reprends le script que tu avais au début :P et dis moi simplement s'il fonctionne comme tu veux ou non.

Ensuite, modifie simplement le "alert("...")" par un document.location.href=adresseItem;

Où tu fais en sorte que l'adresse corresponde à une variable qui est transmise à la fonction, mais je ne sais pas si elle existe déjà ou non, car le code que tu me donnes plus haut ne comprends pas vraiment la gestion du menu, mais simplement son affichage.

Si elle n'est pas précisée tu la crée, tu rajoute simplement quelque chose du style adresseItem dans ClickOnItem( indexItem, texteItem, adresseItem ), et lorsque quelque chose appel cette fonction, tu lui passe le paramètre adresse en fonction de l'endroit que tu veux rejoindre.

Ouf, si tu n'as pas tout compris, essaye de te mettre au javascript, mais crois-moi, ce que tu essaye de faire élève déjà énormément le niveau, alors je ne dis pas que c'est infesable, mais pour un débutant ça me parraît chaud !

Et euh, juste comme ça, pour info, ce script n'est compatible qu'avec IE, alors tu va perdre une bonne partie de tes visiteurs si tu ne l'adapte pas, et ça, et ben c'est pas du gateau !
-1
antic80 Messages postés 4751 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 1 159
26 sept. 2005 à 15:20
tu connais pas un menu de ce style un peu plus efficace et assez simple a comprendre car j'ai pas tout suivi dans ton dernier message
-1
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
26 sept. 2005 à 15:24
En fait, le truc c'est que je sais pas exactement à 100% ce que tu veux, et je comprends pas trop l'astuce de travailler avec des menus contextuels.

Pourquoi travailler avec des cliques droits au lieu de cliques gauches ? C'est pour afficher des menus ? Tu veux une interfaces hyper travaillée ?
-1
antic80 Messages postés 4751 Date d'inscription lundi 30 mai 2005 Statut Contributeur Dernière intervention 9 septembre 2009 1 159
26 sept. 2005 à 15:34
en fait en bas de page j'aurais 5 catégories genre :

Nos services : Le personnel : .....

pour chaque catégorie une image différente

par exemple pour le personnel je met une image qui represente un groupe de personnes

ce que je veux c que quand je clic sur l'image un menu dois apparaitre pour me permettre d'acceder aux différentes pages de la catégorie personnel

il faut surtout que ce soit clair et bien présenté. pas forcement très technique
-1
Erdnax Messages postés 2273 Date d'inscription mercredi 1 octobre 2003 Statut Contributeur Dernière intervention 1 octobre 2007 497
26 sept. 2005 à 15:42
Alors tu peux très bien faire ça avec un clique droit, ou même simplement un passage de souris sur l'image.

Ca s'appelle un menu dhtml, tu verra dans google que tu n'es de loin pas le seul à galérer.

Par exemple ici tu trouvera une explication claire (mais ça reste dans tous les cas un peu technique, c'est quand même très aboutit comme manière de présenter :S), version débutant, et tu pourra essayer d'y modifier lorsque ça tournera.

http://webmaster.lycos.fr/topics/technic/dhtml/dhtml-workshop2/0/

Sinon fais des recherches sur google avec "menu" et "dhtml".
-1