2010-08-26 4 views
0

Un client cherche à jouer un bref splash javascript animation chaque fois qu'un utilisateur accède à leur site pour soit la première fois ou après avoir visité un autre domaine. Donc, tant qu'ils ne naviguent pas dans le site. Essentiellement, je cherche à mettre un cookie et le supprimer si elles quittent le domaine ou capturer ce qui se passe dans la barre d'URL, et je réalise qu'il pourrait être impossible pour des raisons de sécurité/confidentialité, mais je voulais vérifier si tous les génies autour d'ici pourraient avoir une idée pour un hack. Ceci est ma tentative a échoué le plus proche à une solution complète:changement de domaine de détection pour la suppression des cookies

function del_cookie() { 
    var baseUrl= 'mydomain.com'; 

    var currUrl = document.location.href;                    

    var splitUrl = currUrl.split('/');                    

    var currBaseUrl = splitUrl[2];                     

    if(currBaseUrl != baseUrl) {                      
    document.cookie = "animation=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT";          
    }    
} 

<body onunload="del_cookie()"> 

Bien entendu, le currUrl n'a pas mis à jour à la nouvelle URL à ce stade, donc cela ne fonctionnera pas.

Il semble que la meilleure solution que je pourrais avoir est de contrôler uniquement l'animation sur les clics et les changements à l'intérieur du DOM et de laisser la barre d'adresse hors de tout. Mais est-ce que quelqu'un d'autre a une idée?

Répondre

0

Ressemble à la fin, cela était impossible. Répondu ici pour l'amour de la postérité.

0

Juste pour ajouter à cette question (travaillant également sur ce même problème). Fondamentalement, lorsque vous êtes sur mydomain.com et accédez à mydomain.com/page, le del_cookie sait qu'il est toujours dans mydomain.com, donc aucun cookie n'a été supprimé. mais lorsque vous cliquez sur Yahoo bookmark ou tapez yahoo.com, currUrl pense toujours que vous êtes toujours sur mydomain.com. existe-t-il un moyen de récupérer l'URL à venir/à charger?

Voici le flux que l'utilisateur voulait: 1: ouvrir une nouvelle fenêtre de navigateur unique 2: aller à mydomain.com 3: voir l'écran de chargement. 4: si vous cliquez sur un lien sur mydomain.com, il ne rechargera PAS les animations & écran de chargement.
5: Alors disons que je vais à www.digg.com ou www.gizmodo.com 6: laissez gizmodo.com 7: décidez de revenir à mydomain.com 8: nous devrions voir la page d'accueil à nouveau. La "page splash" est une div qui s'affiche lorsque javascript détecte qu'aucun cookie n'est défini. il charge l'animation de la page d'accueil et définit un cookie de session.

+0

Pas à partir de la page Web, non. Une extension de navigateur aura accès à ces données, mais vos utilisateurs devront d'abord installer cette extension. – Piskvor

+0

Voilà ce que je pensais: - / –

0

Si je vous comprends bien, vous voulez un écran d'accueil pour afficher à tout point d'entrée dans le site, et pas seulement la page d'accueil (par exemple).

Une technique pourrait être de vérifier l'en-tête HTTP_REFERER (sic). Si elle est vide ou est un autre domaine que le domaine du site actuel, il est très probable que c'est la première visite [pour cette session.]

-Oisin

Questions connexes