11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Dans le cadre du développement de mon propre site pour mon activité, je souhaiterais ceci :

- que la page avec ma vidéo flash de présentation ne soit visible qu'une seule fois par le visiteur pour qu'ensuite, il accède directement à la page index.html


j'ai utilisé ce script (voir en dessous). Il fonctionne très bien sur IE7 mais pas sur Firefox 3.


Vous avez une idée du pourquoi ?

Une autre solution ?


Merci pour votre aide précieuse.




<SCRIPT LANGUAGE="JavaScript">
// Scrip créé par @urelusMagnus
var nbJour = 100000; 
var page = "/videopub.html"; 
function GetCookie (name) {  
	var arg = name + "=";  
	var alen = arg.length;  
	var clen = document.cookie.length;  
	var i = 0;  
	while (i < clen) {    
		var j = i + alen;    
		if (document.cookie.substring(i, j) == arg)      
			return getCookieVal (j);    
		i = document.cookie.indexOf(" ", i) + 1;    
		if (i == 0) break;   
	}
  
	return null;
}
function SetCookie (name, value) {  
	var argv = SetCookie.arguments;  
	var argc = SetCookie.arguments.length;  
	var expires = (argc > 2) ? argv[2] : null;  
	var path = (argc > 3) ? argv[3] : null;  
	var domain = (argc > 4) ? argv[4] : null;  
	var secure = (argc > 5) ? argv[5] : false;  
	document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) +  
	((domain == null) ? "" : ("; domain=" + domain)) +    
	((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {  
	var exp = new Date();  
	exp.setTime (exp.getTime() - 1);  
	var cval = GetCookie (name);  
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
var exp = new Date(); 
exp.setTime(exp.getTime() + (nbJour*24*60*60*1000));
function getCookieVal(offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
	endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}
function verifNbOuverture() {
	var cpt = GetCookie('cpt');
	if (cpt == null) {
		cpt=2;
		SetCookie('cpt', cpt, exp);
		document.location.href(page)
		
	}
	else {
		cpt++;
		SetCookie('cpt', cpt, exp);
		}
}
verifNbOuverture();
</script>

Modifié par commmk (26 Oct 2008 - 15:39)
Bonjour,

Je croyais que les pages d'intro avec animation Flash étaient mortes et enterrées? Certains font de la résistance?

Il est généralement conseillé de supprimer purement et simplement les pages d'intro, souvent inutiles et frustrantes pour le visiteur (retarde l'accès aux contenus réels). Si la page d'intro contient des informations importantes, ces informations doivent faire partie de la page d'accueil. Si ta vidéo de présentation est une bonne manière de présenter ton activité de manière succincte et efficace, tu peux l'inclure à ta page d'accueil, ou proposer le visionnage de cette vidéo depuis cette page d'accueil (vignette, texte «voir la vidéo de présentation», le tout cliquable et menant vers une page dédiée par exemple... ou chargeant le contenu directement dans la page).

Ceci étant dit, je déplace ce sujet dans le salon JavaScript vu qu'il ne s'agit pas (au vu de ton code) d'un problème de HTML mais bien d'un problème de gestion de cookies avec JavaScript. Si tu souhaites une réponse technique à ton problème, ton sujet aura plus de chances d'en recevoir dans le bon salon. Smiley cligne
Oui l'intérêt ici est assez intéressant car la vidéo de présentation a vraiment un contenu objectif, de présentation de l'entreprise.

Le visionnage apporte beaucoup au visiteur se rendant pour la première fois sur le site.

Bref, merci de ton intervention en tout cas.

J'espère qu'une personne calée dans le domaine sera éclairer le problème Smiley smile

@++
Modifié par commmk (26 Oct 2008 - 17:09)
Si tu persiste, malgré les explication du Flo, à vouloir mettre une intro en flash, ton script pour activer ou non son affichage doit se gèrer autrement que par javascript, php par exemple, peut faire ça très simplement:
<?php
  if ( array_key_exists('skip_intro', $_COOKIE) ) {
    include('page_index.php');
  }
  else {
    $_COOKIE['skip_intro'] = true;
    include('page_intro.php');
  }
?>


C'est autrement plus simple non? Smiley cligne

De plus, avec ton système, si l'utilisateur a désactivé javascript, tu fais comment?

Par contre, autaut avec ton système que le miens, s'il refuse les cookies ou si il les vides, il reverra l'intro à sa prochaine visite, ce qui peut être problématique.

Sa solution serait alors de donner comme point d'accès du site: www.exemple.com/intro.php

ainsi, lorsqu'ils reviendraient sur www.exemple.com ils ne seraient pas gènés pas l'intro ^^
en effet...

donc avec cette solution, je dois :

- placer le code php entre les balises head de mon index.php ?


je viens de tester, j'ai l'intro qui s'affiche au dessus de mon index... bizarre, je vais vérifier ca

merci de ton aide
Modifié par commmk (26 Oct 2008 - 22:41)
aie, j'ai parlé trop vite ? je ne sais pas mais apparement on retombe toujours sur la page vidéo.

voici ce que j'ai fait :

- page index.php comprenant juste ceci :

<?php
  if ( array_key_exists('skip_intro', $_COOKIE) ) {
    include('indexsite.php');
  }
  else {
    $_COOKIE['skip_intro'] = true;
    include('indexpub.php');
  }
?>


- page indexsite.php avec l'index du site
- page indexpub.php avec la vidéo


et pourtant, on retombe toujours sur la page indexpub.php


une idée du pourquoi ??? Smiley decu


merci bcp pour l'aide...
Modifié par commmk (26 Oct 2008 - 22:42)