11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour! je débute en JS et j'ai besoin de créer une redirection vers une page ou une autre au chargement de la page en fonction de l'heure. J'avais un code en PHP et pour des raisons trop longues à expliquer j'ai besoinde le faire en JS. Alors comme un gros malin j'ai repris la structure de mon code PHP avec des "petites retouches" pour faire du JS. Et bien entendu... ben ca marche pas! hahaha!!!

Si qqun peux m'aider... Smiley smile

Ma superbe "création" :

<script>

var heure = new Date(heure);

	if (heure < 17 || heure >= 18) {
		function RedirectionJavascript(){
		document.location.href="http://smart-display.led-visual-innovation.fr/0-demo/0-page-veille-de-nuit/"; 
		}
	}

	else {
		function RedirectionJavascript(){
		document.location.href="http://smart-display.led-visual-innovation.fr/0-demo/"; 
		}
	}

</script>
J'essaye d'avancer en attendant... Ca donne ca et ca marche toujours pas! Smiley smash

<script type='text/javascript'>

var now = new Date();
var heure = now.getHours();

function Quelheure(){
	if (heure < 9 || heure >= 19) {
		function RedirectionJavascript(){
		document.location.href="http://smart-display.led-visual-innovation.fr/0-demo/0-page-veille-de-nuit/"; 
		}
	}

</script>
<body onload="Quelheure()" >
Modérateur
Hello, pour executer une function, il y a deux chose
1) déclarer cette function -> tu le fais bien avec QuelleHeure() et RedirectionJavascript()
2) utiliser cette function -> tu le fais avec QuelleHeure() mais pas avec l'autre.

Cela veut simplement dire qu'elle ne sera créé mais jamais exécutée. Aussi, une function est un bon moyen pour structurer son code et surtout le réutiliser. Dans ce cas-ci, tu n'en fais rien.

À nouveau 2 possibilités :
1) tu supprimes la function qui englobe le document.localtion et tu le déclares simplement dans ta condition.
2) tu créés une function changeLocation(url) qui prend un argument et que tu personnalisera lorsque tu appelles ta function.

Un petit exemple :

var now = new Date();
var heure = now.getHours();

function Quelheure(){
	if (heure < 9 || heure >= 19) {
		ChangeLocation("http://smart-display.led-visual-innovation.fr/0-demo/0-page-veille-de-nuit/"); 
		}
	else{
		ChangeLocation("http://google.com"); 
		}

	function ChangeLocation(url){
		document.location.href=url;
	}
}



ps : une dernière chose, mais je trouve ça perturbant d'initialiser des variables en français et d'autres en anglais.


Pas sur que ça fonctionne car pas testé (et je pense que le body onload ne sert à rien) mais j'espère que ça aidera Smiley smile
Alors tout d'abord merci à vous 2.

Ca fonctionne! Et effectivement si je ne précise pas d'évènement dans le body ça ne marche pas.

J'aurais 2 questions complémentaires:
• Est-ce que je suis obligé de mettre "else" si je veux que rien ne se passe?
• Y a-t-il une solution pour se passer du code dans le body (onload)?

Ca a l'air sympa le JS. Je crois que je vais creuser! Smiley smile
Bonjour robin25,
Le else n'est pas obligatoire
function Quelheure(){
  var now = new Date(), heure = now.getHours();
  if (heure < 9 || heure >= 19) {
    document.location.href="http://smart-display.led-visual-innovation.fr/0-demo/0-page-veille-de-nuit/"; 
  } 
}
document.addEventListener('DOMContentLoaded',Quelheure);

ou
document.addEventListener('DOMContentLoaded',function(){
  let now = new Date(), heure = now.getHours();
  if (heure < 9 || heure >= 19) {
    document.location.href="http://smart-display.led-visual-innovation.fr/0-demo/0-page-veille-de-nuit/"; 
  } 
});
Ah oui j'imagine que grâce à ca plus besoin : document.addEventListener('DOMContentLoaded',Quelheure);

Merci
Connaissez-vous un bon site pour débuter en JS? J'aime bien comprendre ce que je fais et là c'est pas complètement la cas...

Sinon merci encore pour votre aide. Smiley smile