Rediriger le navigateur une fois seulement en utilisant Javascript

  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Janvier 30th, 2012, 11:49 am

Bonjour à tous

Sur mon site, j'ai un problème de compatibilité lorsqu'une personne accède via Microsofte Internet explorer. Ce problème existe seulement pour une fonction particulière. Pour les autres navigateurs tels que Google Chrome, renard de feu et Safari, il n'y a aucune question.

J'ai envoyé jusqu'à un javascript qui détecte le nom du navigateur et puis les redirige vers une autre page web. Sur cette page web, l'utilisateur effectue un couple d'actions pour faire un travail autour. Quand fini il clique sur un bouton qui les ramène à ma page d'accueil.

Comme vous pouvez le voir, lorsque l'utilisateur clique sur le bouton pour revenir à la page d'accueil, il est redirigé à nouveau à la page qu'ils venaient depuis Internet Explorer est détectée. L'utilisateur se retrouve dans une boucle sans fin.

Ce que j'aimerais faire qui est la première fois les utilisateurs d'Internet Explorer est détecté, ils sont envoyés à l'autre page web. Lorsque l'utilisateur clique sur le bouton et remonte à la page d'accueil, il ne devrait pas être redirigé à nouveau dos vers l'autre page web.

J'ai lu quelque part que javascript peut utiliser des cookies pour déterminer cela, mais je ne sais pas comment faire ceci ou si elle même peut être fait.

J'apprécierais des suggestions sur la façon de rediriger le navigateur de l'utilisateur qu'une seule fois.

Merci
http://www.schembrionics.com
The Ultimate Solutions Center
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Janvier 30th, 2012, 11:49 am

  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Février 13th, 2012, 10:56 am

Bonjour à tous

Quelqu'un at-il des suggestions.
Ils seraient vraiment appréciés

Merci
http://www.schembrionics.com
The Ultimate Solutions Center
  • typhon
  • Guru
  • Guru
  • Avatar de l’utilisateur
  • Inscription: Oct 25, 2004
  • Messages: 1294
  • Loc: Memphis, Tn
  • Status: Offline

Message Février 13th, 2012, 6:41 pm

Travail rapide autour. A la page « détection » est la page d'accueil. avoir une redirection pour tous les navigateurs. Si ils utilisent IE puis les envoyer aux travaux autour de page, sinon envoyer au reste du site. Puis le travail autour de page, plutôt que d'envoyer les ramener à la page d'accueil envoyer au reste du site .. cela aucun sens ?
-- Never hold a cat and a hairdryer at the same time.
  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Février 14th, 2012, 10:50 am

Bonjour Typhon

Merci pour la réponse

Le problème est que j'ai un site Web CMS Joomla.
Il utilise un modèle commun pour toutes mes pages Web.

Cela signifie que n'importe où envoyer le visiteur, autre que la page de la solution de contournement qui est externe, il est essentiellement directement ou indirectement sur ma page d'accueil où tous les menus sont contenues et indiqués sur chaque page web.

Pour aujourd'hui, j'ai ajouté un lien Manuel informant les utilisateurs de navigateur Internet Explorer cliquer sur pour résoudre le problème. Ce que je n'aime pas, c'est que le visiteur ne peut pas cliquer sur le lien pour aller à la page de contourner le problème, c'est pourquoi j'espérais que d'utiliser un détecteur de navigateur sur une base de temps.
http://www.schembrionics.com
The Ultimate Solutions Center
  • Zealous
  • Guru
  • Guru
  • Avatar de l’utilisateur
  • Inscription: Avr 15, 2011
  • Messages: 1202
  • Loc: Sydney
  • Status: Offline

Message Février 14th, 2012, 7:25 pm

Puis avoir un détecteur de IE et forcer l'utilisation de firefox pour charger le site. IE n'est pas compatible avec ce site Veuillez utiliser firefox:P
  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Février 14th, 2012, 9:12 pm

Salut

Merci pour votre réponse

IE fonctionne sur mon site, c'est la seule caractéristique qui a des problèmes.

Bien qu'il y a beaucoup de plaintes contre IE, c'est encore l'un des plus populaires navigateurs utilisés. Si j'arrête IE d'accéder au site Web, puis je va tourner loin de nombreux clients potentiels.
http://www.schembrionics.com
The Ultimate Solutions Center
  • Zealous
  • Guru
  • Guru
  • Avatar de l’utilisateur
  • Inscription: Avr 15, 2011
  • Messages: 1202
  • Loc: Sydney
  • Status: Offline

Message Février 14th, 2012, 9:45 pm

C'est un problème alors eh......encore ne crois pas que IE est utilisé mosted et seulement parce que c'est la valeur par défaut de windows je crois encore majorité sont Firefox et safari. De toute façon, c'est une question différente.

Mais j'ai fait quelques Google-Fu et regardez cela et voir ce que vous pensez sur l'ajout de ce code pour l'en-tête de modèle donc il sera détecté sur toutes les pages. Mais oui cela coutures comme la solution parfaite et en regardant les coutures de code comme un simple ajoutent de trop.

http://wwwdot netmechanic dot com/news/vol3/javascript_no15.htm

dites-moi comment ya aller avec elle.
  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Février 14th, 2012, 10:30 pm

Salut

Comme je l'avais dit, le modèle est utilisé pour toutes les pages Web.

J'avais mis un script similaire sur mon modèle.

Lorsqu'un visiteur visite ma page d'accueil web et a IE, ils sont redirigés vers un travail externe autour de page.

Ils ont ensuite cliquant sur un lien qui les ramène.

Une fois qu'ils y retournent, IE est détecté, et elles sont envoyées vers le travail autour de page. Étant donné que le script est sur le modèle, il vraiment n'importe pas quelle page envoyer leur et ils seront redirigés vers la page de la solution de contournement.

Pour ce que j'espère, c'est un script qui détecte IE et envoie le visiteur à travailler autour de page. Lorsqu'ils cliqueront sur de revenir, le script permettra de déterminer qu'ils avaient été sur la page d'accueil avant et donc pas redirigera leur retour à la page de solution de contournement, causant une boucle sans fin.
http://www.schembrionics.com
The Ultimate Solutions Center
  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Février 15th, 2012, 12:34 pm

J'ai vérifié autour pour voir ce qu'était le navigateur plus populaire et les statistiques suivantes : de janvier 2012 :

Firefox : 37,1 %
Chrome & #058 ; 35,3 %
IE: 20,1 %
Safari : 4,3 %
Opéra : 2,4 %

Si nous croyons que ces statistiques, IE est encore un navigateur un peu populaire.
http://www.schembrionics.com
The Ultimate Solutions Center
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8934
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Février 15th, 2012, 1:25 pm

Bonjour WPA,

Lorsque j'ai commencé à lire votre thread, c'était mon idée initiale pour résoudre votre problème : les cookies. Fondamentalement, tout que vous devez faire est premier test si certains un cookie existe, et si il ne le fait pas et si le navigateur correspond à votre navigateur de problème, alors il serait rediriger. Une fois qu'ils ont réglé le problème un nouveau cookie sera mis, et alors le processus est répété. Étant donné que le cookie existe maintenant, ils ne seraient pas rediriger la prochaine fois qu'ils sont à votre page d'accueil.

Vous pouvez définir absolument les cookies à l'aide de JavaScript. Vous utilisez des frameworks JavaScript ? J'utilise le framework jQuery, et cela peut se faire facilement avec jQuery. Sinon vous pouvez toujours utiliser Javascript régulière aussi bien, mais il y a un exemple avec jQuery sur comment définir et lire des cookies.

Permet donc dire qu'il complète l'action. Vous pouvez ensuite définir un cookie appelé « fixCompleted » :

JAVASCRIPT Code: [ Select ]
$.cookie("fixCompleted", "true");


Vous pouvez ensuite faire un test rapide pour voir si le cookie existe vraiment :

JAVASCRIPT Code: [ Select ]
alert( $.cookie("fixCompleted") );


Si tout fonctionne alors vous pouvez supprimer cette ligne et simplement faire un test pour la page d'accueil comme ceci :

JAVASCRIPT Code: [ Select ]
if($.cookie("fixCompleted") != 'true') { //do redirection }


Si il n'est pas vrai, puis faire une redirection. C'est tout simplifié, mais j'espère que vous donne l'idée.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Février 17th, 2012, 9:56 am

Salut

Merci pour votre réponse

Je vais avoir les paramètre de difficulté et la vérification de cookie.

Pour définir le cookie, j'utilise les éléments suivants :

Code: [ Select ]
<SCRIPT LANGUAGE = JAVASCRIPT>
cookie.set('msie', 'redirect', 0); // last argument is number of days until expiry.
</script>
  1. <SCRIPT LANGUAGE = JAVASCRIPT>
  2. cookie.set('msie', 'redirect', 0); // last argument is number of days until expiry.
  3. </script>


Pour voir si le cookie est configuré, j'utilise les éléments suivants :

Code: [ Select ]
<SCRIPT LANGUAGE = JAVASCRIPT>
alert( cookie.get('msie'));
</script>
  1. <SCRIPT LANGUAGE = JAVASCRIPT>
  2. alert( cookie.get('msie'));
  3. </script>


Quand accéder à la page web, je m'attendais à un message mais rien obtenir.

Suis je manque quelque chose ou avoir une erreur sur la façon de le faire.
J'utilise juste le Javascript

Merci
http://www.schembrionics.com
The Ultimate Solutions Center
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8934
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Février 17th, 2012, 10:32 am

Bonjour WPA,

Je ne suis pas familier avec votre fonction cookie.set. Avez vous une autre fonction ou bibliothèque qui déclare cela ? Généralement si vous utilisez seulement JavaScript régulière, je crois que vous pouvez définir un cookie comme suit :

JAVASCRIPT Code: [ Select ]
document.cookie = "bunch of stuff"


Je crois que la bibliothèque YUI vous permet d'utiliser une fonction appelée Cookie.set, mais si vous utilisez seulement JavaScript régulière, alors cette fonction ne fonctionnerait pas et vous devrez faire il aime plus la façon dont je l'ai mentionné plus haut.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Février 17th, 2012, 10:48 am

Salut

Merci pour votre réponse

J'ai réessayé comme suit.

Définissant le cookie :

Code: [ Select ]
<script type="text/javascript">
document.cookie = "msie";
</script>
  1. <script type="text/javascript">
  2. document.cookie = "msie";
  3. </script>


vérification des cookies :

Code: [ Select ]
<script type="text/javascript">
alert( document.cookie('msie'));
</script>
  1. <script type="text/javascript">
  2. alert( document.cookie('msie'));
  3. </script>



Ne fonctionne toujours pas
http://www.schembrionics.com
The Ultimate Solutions Center
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8934
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Février 17th, 2012, 11:52 am

Bonjour WPA,

L'exemple que je vous ai donné est un exemple rudimentaire, vous devez encore faire beaucoup plus de :

JAVASCRIPT Code: [ Select ]
    <script type="text/javascript">
    document.cookie = "msie";
    </script>
  1.     <script type="text/javascript">
  2.     document.cookie = "msie";
  3.     </script>


pour définir un cookie avec Javascript régulière. Avec jQuery, c'est très simple que j'avais vous montré ci-dessus, mais avec le Javascript, vous allez avoir à faire quelque chose de plus car un cookie contient ces éléments :

  • Une paire nom-valeur
  • Date d'expiration
  • Domaine et le chemin d'accès

Chaque cookie possède une paire nom-valeur qui contient les informations réelles. Est le nom du cookie vous permet de chercher par la suite, vous recherchera ce nom lors de la lecture des informations sur les cookies.

Chaque cookie possède une date d'expiration après laquelle il est ont saccagé. Si vous ne spécifiez pas la date d'expiration que du cookie est ont saccagé lorsque vous fermez le navigateur.

Chaque cookie possède également un domaine et un chemin d'accès. Le domaine indique au navigateur de domaine qui le cookie doit être envoyé. Si vous ne spécifiez pas, il devient le domaine de la page qui définit le cookie.

Donc dans votre exemple ci-dessus, vous jamais précisé une paire de valeur de nom, une date d'expiration, ou un domaine et le chemin d'accès. Non seulement votre cookie doit contenir des ces données, mais il doit être mis en forme dans la bonne trop comme suit :

JAVASCRIPT Code: [ Select ]
document.cookie = 'var=value; expires=Fri, 17 Feb 2012 06:42:00 UTC; path=/';


Généralement lorsque vous écrivez votre Javascript, vous voudront probablement de calculer dynamiquement la date, ce qui signifie prendre la date actuelle via une fonction JavaScript, puis en ajoutant un certain nombre de jours ou de secondes à cette date et ensuite dynamiquement plaçant dans la chaîne document.cookie ci-dessus. Gardez à l'esprit que la syntaxe ci-dessus est une syntaxe très stricte, donc si vous ratez un point-virgule où on appartient, elle ne fonctionne pas. Le format est toujours comme ça :

Première la paire nom-valeur (var = valeur)
Puis un point-virgule et un espace
Puis la date d'expiration dans le format correct (expire = vendredi 17 février 2012 06:42 UTC)
Puis un point-virgule et un espace
Puis le chemin (path = /)

Au lieu de cela, vous pouvez créer certaines fonctions que cela rendra plus facile :

JAVASCRIPT Code: [ Select ]
function createCookie(name,value,days) {
   if (days) {
      var date = new Date();
      date.setTime(date.getTime()+(days*24*60*60*1000));
      var expires = "; expires="+date.toGMTString();
   }
   else var expires = "";
   document.cookie = name+"="+value+expires+"; path=/";
}
 
function readCookie(name) {
   var nameEQ = name + "=";
   var ca = document.cookie.split(';');
   for(var i=0;i < ca.length;i++) {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1,c.length);
      if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
   }
   return null;
}
 
function eraseCookie(name) {
   createCookie(name,"",-1);
}
  1. function createCookie(name,value,days) {
  2.    if (days) {
  3.       var date = new Date();
  4.       date.setTime(date.getTime()+(days*24*60*60*1000));
  5.       var expires = "; expires="+date.toGMTString();
  6.    }
  7.    else var expires = "";
  8.    document.cookie = name+"="+value+expires+"; path=/";
  9. }
  10.  
  11. function readCookie(name) {
  12.    var nameEQ = name + "=";
  13.    var ca = document.cookie.split(';');
  14.    for(var i=0;i < ca.length;i++) {
  15.       var c = ca[i];
  16.       while (c.charAt(0)==' ') c = c.substring(1,c.length);
  17.       if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  18.    }
  19.    return null;
  20. }
  21.  
  22. function eraseCookie(name) {
  23.    createCookie(name,"",-1);
  24. }


Alors vous pouvez simplement définir un cookie comme suit :

JAVASCRIPT Code: [ Select ]
createCookie('var','value',30);


Puis de lire le cookie que vous pouvait faire quelque chose comme :

JAVASCRIPT Code: [ Select ]
alert(readCookie('var'));


Étant donné que le nom du cookie a été « var », comme indiqué ci-dessus, c'est pourquoi je suis passant « var » à la fonction. Enfin vous pouvez supprimer le cookie comme ceci alors :

JAVASCRIPT Code: [ Select ]
eraseCookie('var');


Espoir qui aide. Je personnellement fortement vous encourage à commencer à utiliser une bibliothèque Javascript comme jQuery, comme l'empreinte est très petite et si vous utilisez beaucoup de Javascript tout au long de votre site, vous trouverez que votre vie sera beaucoup plus facile, et ensemble vous allez utiliser beaucoup moins de code qui, en fin de compte, vous économise réellement sur quel JavaScript, l'utilisateur doit télécharger. Peu importe, si vous préférez la solution JavaScript directement, nous espérons que ce qui précède vous aide à définir le cookie.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • wpas
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Juil 12, 2010
  • Messages: 214
  • Loc: Canada
  • Status: Offline

Message Février 21st, 2012, 1:44 pm

Bonjour Bigwebmaster

Merci pour votre réponse.

J'ai commencé à penser à tout ce qui vous a dit et fait quelques recherches sur ce.
J'ai l'impression que les visiteurs n'aiment pas être redirigé lorsqu'ils vont à un site Web, alors j'ai décidé d'afficher un message d'alerte javascript si le visiteur a IE.
J'ai aussi mis une option sur mon site Web pour permettre au visiteur d'aller à la page de la solution de contournement s'ils le souhaitent.

J'ai créé une page de web des échantillon pour tester l'a fait ce qui suit :

Tout d'abord vérifier pour voir quel navigateur utilise le visiteur :

Code: [ Select ]
var browserName = navigator.appName;


Si le navigateur est IE et un cookie nommé « msie » existe alors aucun message n'est affiché.
Si aucun cookie n'existe, alors il est créé avec l'expiration 0 afin qu'elles sont supprimées lorsque le navigateur est fermé.
Avant que le cookie est créé, afficher le message d'alerte si IE a été détecté.

Code: [ Select ]
if ((document.cookie.search(/(^|;)msie=/) > -1) && (browserName=="Microsoft Internet Explorer"))
{  
//do nothing
}
else
{  
document.cookie = "msie=true;max-age=" + 60 * 60 * 24 * 0; // 60 seconds to a minute, 60 minutes to an hour, 24 hours to a day, and 0 days.   

if (browserName=="Microsoft Internet Explorer")
{
alert("Welcome Internet Explorer User! \n Please Read The Message In Red, \n In The Left Column Of This Web Page");
}
else
{
//do nothing
}
}
  1. if ((document.cookie.search(/(^|;)msie=/) > -1) && (browserName=="Microsoft Internet Explorer"))
  2. {  
  3. //do nothing
  4. }
  5. else
  6. {  
  7. document.cookie = "msie=true;max-age=" + 60 * 60 * 24 * 0; // 60 seconds to a minute, 60 minutes to an hour, 24 hours to a day, and 0 days.   
  8. if (browserName=="Microsoft Internet Explorer")
  9. {
  10. alert("Welcome Internet Explorer User! \n Please Read The Message In Red, \n In The Left Column Of This Web Page");
  11. }
  12. else
  13. {
  14. //do nothing
  15. }
  16. }


J'ai créé une page Web avec le code javascript ci-dessus et testés à l'aide de IE, Chrome, Safari et Firefox, et il semble fonctionner correctement. Le message d'alerte s'affiche uniquement pour IE et qu'une seule fois.

J'apprécierais vos commentaires ou suggestions à ma solution.

Merci
http://www.schembrionics.com
The Ultimate Solutions Center
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Février 21st, 2012, 1:44 pm

Afficher de l'information

  • Total des messages de ce sujet: 16 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 149 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC