11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je bosse sur un CMS qui a la fâcheuse tendance a contextualiser en terme d'url tous les outils qu'il peut. Hormis le désastre en terme de référencement (vous imaginez vous une page météo qui possède autant d'url qu'il y a de pages dans le site ???) ça m'en pose un autre au niveau CSS puisque chaque rubrique disposant de sa propre class CSS, ma page météo ne ressemble jamais à ce qu'elle doit en fonction de là où on l'appelle.

Donc :

soit une page weatherforecast.html

et le script suivant (qui semble parfaitement inopérationnel dans ce cas précis) supposé rajouter la class CSS "meteo" au tag body, eut égard aux autres class déjà présentes (du moins m'a t'on dit)


<script type="text/javascript">  
  						if (document.location.href.indexOf('weatherforecast.html')!=-1) {
     						 document.getElementsByTagName('BODY')[0].setAttribute("class","meteo"); 
     						 document.getElementsByTagName('BODY')[0].className='meteo'; 
  	 					}
	    </script>


Ma question : qu'est ce qui peut justifier que ce coup-ci ca ne marche pas ? (même si la réponse concerne mon level de boulet-titude, j'assume Smiley cligne )

Dans un deuxième temps, replace() ne semblant pas m'apporter grand chose de plus, comment lui demander d'éjecter la class CSS déjà présente pour la remplacer par "meteo" ?


Merci de vos retours et bonne journée à tous Smiley cligne
D'après moi ce bout de script devrait remplacer la classe actuelle de <body> par "meteo", ou la mettre tout simplement si body n'a pas de classe.

Les deux lignes font le même effet.

Est-tu sur que la classe n'est pas bel et bien ajoutée, mais que ce sont tes ordres CSS qui ne sont pas assez précis ?
Vérifie sous Firebug pour voir si la classe est bien présente, normalement oui.
document.body+= ' maclasse';

fonctionne parfaitement, notez bien l'espace avant le nom de la classe, cela permet de rajouter une classe correctement puisqu'on peut mettre plusieurs classes sur un éléments en les séparant par un espace au niveau HTML.
Modérateur
euh... Tu voulais dire :
document.body.className += ' maclasse';
non ? A moins que tu m'ais encore inventé une nouvelle astuce. Smiley lol
Que les gens de ce forum me pardonne, je mérite d'être chatié Smiley biggol

Edit : T'es pas censé être en vacances toi Smiley rolleyes ?
Modifié par Gatsu35 (15 Jul 2008 - 08:57)