IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Liens dans un site web en Javascript


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 2
    Par défaut Liens dans un site web en Javascript
    SAlut a tous,

    Je suis en train de programmer un Prottotype pour un site web dynamique dans lequel je place un menu vertical en Javascript. je travaille en dreamweaver 8. quand je teste les pages avec dreamweaver, les liens fonctionnent a merveille. mais quand je les charge dans mon server web ( wamp server) elles ne fonctionnent pas.

    voila les codes que j'utilise:

    Programme principal du menu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    // Title:  Menu
     
    --------------------------------------------------------------------------------
    // global collection containing all menus on current page
    var A_MENUS = [];
     
    // --------------------------------------------------------------------------------
    // menu class
    function menu (a_items, a_tpl) {
     
    	// browser check
    	if (!document.body || !document.body.style)
    		return;
     
    	// store items structure
    	this.a_config = a_items;
     
    	// store template structure
    	this.a_tpl = a_tpl;
     
    	// get menu id
    	this.n_id = A_MENUS.length;
     
    	// declare collections
    	this.a_index = [];
    	this.a_children = [];
     
    	// assigh methods and event handlers
    	this.expand      = menu_expand;
    	this.collapse    = menu_collapse;
     
    	this.onclick     = menu_onclick;
    	this.onmouseout  = menu_onmouseout;
    	this.onmouseover = menu_onmouseover;
    	this.onmousedown = menu_onmousedown;
     
    	// default level scope description structure 
    	this.a_tpl_def = {
    		'block_top'  : 16,
    		'block_left' : 16,
    		'top'        : 20,
    		'left'       : 4,
    		'width'      : 120,
    		'height'     : 22,
    		'hide_delay' : 5,
    		'expd_delay' : 5,
    		'css'        : {
    			'inner' : '',
    			'outer' : ''
    		}
    	};
     
    	// assign methods and properties required to imulate parent item
    	this.getprop = function (s_key) {
    		return this.a_tpl_def[s_key];
    	};
     
    	this.o_root = this;
    	this.n_depth = -1;
    	this.n_x = 0;
    	this.n_y = 0;
     
    	// 	init items recursively
    	for (n_order = 0; n_order < a_items.length; n_order++)
    		new menu_item(this, n_order);
     
    	// register self in global collection
    	A_MENUS[this.n_id] = this;
     
    	// make root level visible
    	for (var n_order = 0; n_order < this.a_children.length; n_order++)
    		this.a_children[n_order].e_oelement.style.visibility = 'visible';
    }
     
    // --------------------------------------------------------------------------------
    function menu_collapse (n_id) {
    	// cancel item open delay
    	clearTimeout(this.o_showtimer);
     
    	// by default collapse to root level
    	var n_tolevel = (n_id ? this.a_index[n_id].n_depth : 0);
     
    	// hide all items over the level specified
    	for (n_id = 0; n_id < this.a_index.length; n_id++) {
    		var o_curritem = this.a_index[n_id];
    		if (o_curritem.n_depth > n_tolevel && o_curritem.b_visible) {
    			o_curritem.e_oelement.style.visibility = 'hidden';
    			o_curritem.b_visible = false;
    		}
    	}
     
    	// reset current item if mouse has gone out of items
    	if (!n_id)
    		this.o_current = null;
    }
     
    // --------------------------------------------------------------------------------
    function menu_expand (n_id) {
     
    	// expand only when mouse is over some menu item
    	if (this.o_hidetimer)
    		return;
     
    	// lookup current item
    	var o_item = this.a_index[n_id];
     
    	// close previously opened items
    	if (this.o_current && this.o_current.n_depth >= o_item.n_depth)
    		this.collapse(o_item.n_id);
    	this.o_current = o_item;
     
    	// exit if there are no children to open
    	if (!o_item.a_children)
    		return;
     
    	// show direct child items
    	for (var n_order = 0; n_order < o_item.a_children.length; n_order++) {
    		var o_curritem = o_item.a_children[n_order];
    		o_curritem.e_oelement.style.visibility = 'visible';
    		o_curritem.b_visible = true;
    	}
    }
     
    // --------------------------------------------------------------------------------
    function menu_onclick (n_id) {
    	var o_item = this.a_index[n_id];
    	var s_link = o_item.a_config[1];
    	if (!s_link)
    		return true;
    	if (String(s_link).toLowerCase().indexOf('javascript:') == 0)
    		return eval(s_link);
    	if (o_item.a_config[2] && o_item.a_config[2]['tw'])
    		window.open(s_link, o_item.a_config[2]['tw']);
    	else
    		window.location = s_link;
    	return true;
    }
     
    // --------------------------------------------------------------------------------
    function menu_onmouseout (n_id) {
     
    	// lookup new item's object	
    	var o_item = this.a_index[n_id];
     
    	// apply rollout
    	o_item.e_oelement.className = o_item.getstyle(0, 0);
    	o_item.e_ielement.className = o_item.getstyle(1, 0);
     
    	// update status line	
    	o_item.upstatus(7);
     
    	// run mouseover timer
    	this.o_hidetimer = setTimeout('A_MENUS['+ this.n_id +'].collapse();',
    		o_item.getprop('hide_delay'));
    }
     
    // --------------------------------------------------------------------------------
    function menu_onmouseover (n_id) {
     
    	// cancel mouseoute menu close and item open delay
    	clearTimeout(this.o_hidetimer);
    	this.o_hidetimer = null;
    	clearTimeout(this.o_showtimer);
     
    	// lookup new item's object	
    	var o_item = this.a_index[n_id];
     
    	// update status line	
    	o_item.upstatus();
     
    	// apply rollover
    	o_item.e_oelement.className = o_item.getstyle(0, 1);
    	o_item.e_ielement.className = o_item.getstyle(1, 1);
     
    	// if onclick open is set then no more actions required
    	if (o_item.getprop('expd_delay') < 0)
    		return;
     
    	// run expand timer
    	this.o_showtimer = setTimeout('A_MENUS['+ this.n_id +'].expand(' + n_id + ');',
    		o_item.getprop('expd_delay'));
     
    }
     
    // --------------------------------------------------------------------------------
    // called when mouse button is pressed on menu item
    // --------------------------------------------------------------------------------
    function menu_onmousedown (n_id) {
     
    	// lookup new item's object	
    	var o_item = this.a_index[n_id];
     
    	// apply mouse down style
    	o_item.e_oelement.className = o_item.getstyle(0, 2);
    	o_item.e_ielement.className = o_item.getstyle(1, 2);
     
    	this.expand(n_id);
    }
     
    // --------------------------------------------------------------------------------
    // menu item Class
    function menu_item (o_parent, n_order) {
     
    	// store parameters passed to the constructor
    	this.n_depth  = o_parent.n_depth + 1;
    	this.a_config = o_parent.a_config[n_order + (this.n_depth ? 3 : 0)];
     
    	// return if required parameters are missing
    	if (!this.a_config) return;
     
    	// store info from parent item
    	this.o_root    = o_parent.o_root;
    	this.o_parent  = o_parent;
    	this.n_order   = n_order;
     
    	// register in global and parent's collections
    	this.n_id = this.o_root.a_index.length;
    	this.o_root.a_index[this.n_id] = this;
    	o_parent.a_children[n_order] = this;
     
    	// calculate item's coordinates
    	var o_root = this.o_root,
    		a_tpl  = this.o_root.a_tpl;
     
    	// assign methods
    	this.getprop  = mitem_getprop;
    	this.getstyle = mitem_getstyle;
    	this.upstatus = mitem_upstatus;
     
    	this.n_x = n_order
    		? o_parent.a_children[n_order - 1].n_x + this.getprop('left')
    		: o_parent.n_x + this.getprop('block_left');
     
    	this.n_y = n_order
    		? o_parent.a_children[n_order - 1].n_y + this.getprop('top')
    		: o_parent.n_y + this.getprop('block_top');
     
    	// generate item's HMTL
    	document.write (
    		'<div id="e', o_root.n_id, '_',	this.n_id, 'o" class="', this.getstyle(0, 0), '"', 
    		(this.a_config[2] && this.a_config[2]['tt'] ? ' title="' + this.a_config[2]['tt'] + '"' : ''),
    		' style="position:absolute;top: ', this.n_y, 'px;left:', this.n_x, 'px;width:',
    		this.getprop('width'), 'px;height:', this.getprop('height'), 'px;visibility:hidden;',
    		' z-index: ', this.n_depth, ';cursor:', (this.a_config[1] ? 'pointer' : 'default'), '" ',
    		'onclick="return A_MENUS[', o_root.n_id, '].onclick(', this.n_id,
    		');" onmouseout="A_MENUS[', o_root.n_id, '].onmouseout(', this.n_id,
    		');" onmouseover="A_MENUS[', o_root.n_id, '].onmouseover(',
    		this.n_id, ');" onmousedown="A_MENUS[', o_root.n_id, '].onmousedown(',
    		this.n_id, ');"><div id="e', o_root.n_id, '_',
    		this.n_id, 'i" class="' ,this.getstyle(1, 0), '">',
    		this.a_config[0], "</div></div>"
    	);
     
    	this.e_ielement = document.getElementById('e' + o_root.n_id + '_' + this.n_id + 'i');
    	this.e_oelement = document.getElementById('e' + o_root.n_id + '_' + this.n_id + 'o');
     
    	this.b_visible = !this.n_depth;
     
    	// no more initialization if leaf
    	if (this.a_config.length < 4)
    		return;
     
    	// node specific methods and properties
    	this.a_children = [];
     
    	// init downline recursively
    	for (var n_order = 0; n_order < this.a_config.length - 3; n_order++)
    		new menu_item(this, n_order);
    }
     
    // --------------------------------------------------------------------------------
    // reads property from template file, inherits from parent level if not found
    // ------------------------------------------------------------------------------------------
    function mitem_getprop (s_key) {
     
    	// check if value is defined for current level
    	var s_value = null,
    		a_level = this.o_root.a_tpl[this.n_depth];
     
    	// return value if explicitly defined
    	if (a_level)
    		s_value = a_level[s_key];
     
    	// request recursively from parent levels if not defined
    	return (s_value == null ? this.o_parent.getprop(s_key) : s_value);
    }
    // --------------------------------------------------------------------------------
    // reads property from template file, inherits from parent level if not found
    // ------------------------------------------------------------------------------------------
    function mitem_getstyle (n_pos, n_state) {
     
    	var a_css = this.getprop('css');
    	var a_oclass = a_css[n_pos ? 'inner' : 'outer'];
     
    	// same class for all states	
    	if (typeof(a_oclass) == 'string')
    		return a_oclass;
     
    	// inherit class from previous state if not explicitly defined
    	for (var n_currst = n_state; n_currst >= 0; n_currst--)
    		if (a_oclass[n_currst])
    			return a_oclass[n_currst];
    }
     
    // ------------------------------------------------------------------------------------------
    // updates status bar message of the browser
    // ------------------------------------------------------------------------------------------
    function mitem_upstatus (b_clear) {
    	window.setTimeout("window.status=unescape('" + (b_clear
    		? ''
    		: (this.a_config[2] && this.a_config[2]['sb']
    			? escape(this.a_config[2]['sb'])
    			: escape(this.a_config[0]) + (this.a_config[1]
    				? ' ('+ escape(this.a_config[1]) + ')'
    				: ''))) + "')", 10);
    }
     
    // --------------------------------------------------------------------------------
    // that's all folks
     
     
    Pour la postion du menu:
     
    // JavaScript Document
    /* Menu template structure */
    var MENU_TPL = [
    	{
    		'width': 270,
    		'height': 30,
    		'left': 0,
    		'top': 23,
    		'hide_delay': 200,
    		'expd_delay': 200,
    		'css': {
    			'inner': 'TM0i0',
    			'outer': ['TM0o0','TM0o1']
    		},
    		'block_left': 35,
    		'block_top': 300
    	},
    	{
    		'width': 200,
    		'block_left': 130,
    		'block_top': 22,
    		'left':10,
    		'top': 25,
    		'css': {
    			'inner': 'TM0u0',
    			'outer': ['TM1o0','TM1o1']
    		}
    	},
    	{
    		'block_left': 120,
    		'block_top': 20
    	}
    ];
     
     
    Les items du menu: 
     
    // JavaScript Document
    /*  Menu items structure */
    var MENU_ITEMS = [
    	['Acceuil', 'index.htlm', null],
    	['Administration', null, null,
    		['Administration de l\'UNAP', null, null,
    			['Rectorat', null],
    			['Doyens', null],
    			['D.R.H.R.P.', null],
    			['Registrariat', null],
    			['Comptabilité', null]
    			],
    		['Quoi de Neuf', null, null,
    			['Avis', null],
    			['Events', null]
    		],
     
    	    ['Contacts', null, null,
    		 	['Se rendre &agrave; l\'UNAP', null],
    			['Nous contacter', null]
    		],
    	],
    	['Academique', null, null, 
    	   		['Facult&eacute; de l\'UNAP', null, null,
    					['Genie Civil', null],
    					['Informatique', null],
    					['Education', null],
    					['Administration', null],
    					['Odontologie', null],
    					['Environnement', null]
    			],
    			['Appui P&eacute;dagogique', null, null,
    	 				['Biblioth&egrave;que de l\'UNAP', null],
    					['Clinique de l\'UNAP', null],
    					['Laboratoire d\'exp&eacute;rimentation', null],
    					['Acc&egrave; &agrave; l\internet', null],
    					['S&eacute;minaire de Formation', null]
    			],		
    	],
    	['Portail Etudiant', null, null, 
    	   		['Vie Etudiante', null, null,
    					['Sport Universitaire', null],
    					['Journal des Etudiants', null],
    					['Info-Club', null],
    					['Resto-Bar <i>"Prix &eacute;tudiant"', null],
    					['Anciens Etudiants de l\'UNAP', null],
    					['Forums', null]
    			],
    			['Ma Page', null, null,
    	 				['Mes Notes', null],
    					['Mon dossier administratif', null],
    					['Mon Immatriculation', null]
    			],	
    			['Associations d\'&eacute;tudiants', null, null,
    	 				['Comit&eacute; Central de l\'UNAP', null],
    					['Comit&eacute des facult&eacute;', null]
    			],	
    	],
    	['Portail des Professeurs', null, null,
    	 		['Profils', null],
    			['Horaires', null],
    			['Plans de Cours', null],
    			['Support de Cours', null]
    	],
    	['Inscriptions', null, null,
    	 		['Conditions', null],
    			['Admissions', null],
    			['Formulaires d\'Inscriptions', null]
    	],
    	['Cours', null, null,
    	 		['Bureautique', null],
    			['Math&eacute;matiques', null],
    			['Comptabilit&eacute', null]
    	],
    	['Emplois et Stages', null, null,
    	 		['Emplois et Stages offerts', null],
    			['Bourses', null],
    			['Emplois', null],
    			['Stages', null]
    	],
    	['Partenariat International', null, null,
    	 		['EUMC-Canada', null],
    			['Universidad Catolica - San Francisco', null],
    			['Universit&eacute; Laval', null],
    			['UNAM-Mexico', null],
    			['Universit&eacute; de Paris', null],
    			['Universit&eacute; Saint-Anne-Halifax', null]
    	],
    	['T&eacute;l&eacute;chargements', null],
    ];
    J'ai essaye de pointer le lien directement vers les pages. mais sans succes.
    Pouvez-vous m'aidez a arranger ca

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    je te conseillerais de te mefier des childNodes ...
    Je ne sais pas comment DW les interprète ...

    tu testes avec quel navigateur IE ? FFX ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Javascript ou pas dans son site web
    Par brazilia28 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/01/2008, 15h09
  2. Integration d'un podcast dans un site web
    Par ikeaboy dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 08/08/2006, 16h33
  3. Aide pour insérer un fichier flash dans un site web
    Par constitain dans le forum Flash
    Réponses: 2
    Dernier message: 26/07/2006, 22h59
  4. Questions sur le son dans un site web
    Par crash override dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/11/2005, 20h25
  5. blocage de site web avec javascript
    Par aminotma dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/09/2005, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo