2010-09-28 8 views
2

J'ai ce code qui vérifie si js est activé et réoriente:Vérifiez si javascript est activé dans le navigateur

<noscript><meta http-equiv="refresh" content="0;url=http://www.domain.se/act.html"></noscript> 

Cependant, je me demande si cela est ... SE sympathique

parce que j'ai J'ai ajouté mon URL de site Web à Yahoo récemment, et au lieu du titre apparaissant dans les résultats de recherche, le texte de "aktivera_javascript.html" ci-dessus apparaît. Pourquoi donc?

Merci

MISE À JOUR:

Si le code ci-dessus ne sont pas à la vérification des js disponibilité, alors quelle autre méthode devrais-je utiliser à la place?

Répondre

3

La balise noscript est destinée aux agents utilisateurs qui ne peuvent pas exécuter de script. Depuis le Yahoo! spider est l'un de ces agents, je suppose (mais je ne peux pas être certain) qu'il respecte le contenu de la balise noscript et donc la directive HTTP-refresh contenue à l'intérieur. Le résultat est qu'il pense que votre site vit à http://www.skuffen.se/aktivera_javascript.html et affiche ce contenu dans les résultats de recherche.

Pour résoudre ce problème, je suggère soit:

  1. Utilisez progressive enhancement pour assurer le contenu de base est disponible sans Javascript, et couche fonctionnalités avancées sur le dessus. Les agents utilisateurs sans Javascript ne connaîtront aucune différence, et ceux avec qui auront une expérience plus riche.
  2. suffit d'utiliser la balise noscript comme un avertissement plutôt qu'une redirection vers une autre page complète, voir How to check browser's JavaScript is enabled or not.
+0

Je ne l'ai pas mis à jour le site ... Alors, quelle autre méthode devrais-je utiliser pour vérifier si js est activé? –

+0

@Camran a édité la réponse avec des suggestions – roryf

+0

Si j'utilise l'étiquette de noscript avec un avertissement, les moteurs de recherche ne le liront-ils pas toujours et l'afficheront-ils dans les résultats de recherche? –

0

Je pense que vous ne comprenez pas cette balise. Le contenu de noscript indiquera uniquement si le script (comme JavaScript) n'est pas activé. (Most) Les moteurs de recherche ne peuvent pas comprendre JS et exécuter le contenu à partir du noscript. Donc, dans votre cas, ils suivent l'URL.

Mais faites attention. Avec cette méthode, vous pouvez obtenir une pénalité très rapidement. noscript est le plus utilisé pour montrer à l'utilisateur une notification, que javascript est désactivé.

+0

Oui mais si j'ai une notification, alors les moteurs de recherche ne suivront pas noscript comme vous le dites, et afficheront la notification dans les résultats de recherche? –

+0

Oui, ils le feraient. Mais vous pouvez ajouter l'attribut rel = "nofollow" à votre lien. Les mos SE ne suivent pas ce lien. Ou vous pouvez bloquer le site par le fichier robots.txt. Et vous pouvez envelopper l'information à l'utilisateur dans une image. –

1

Personnellement, je pense que l'amélioration progressive est la voie à suivre. Indépendamment de cela, vous pouvez essayer quelque chose comme:

les gens arrivent à une page non-js par défaut. sur la page un script exécuté sur la charge:

<script type="text/javascript"> 
    window.location.href = 'page-with-javascript.html'; 
</script> 

si l'utilisateur a activé javascript, ils immédiatement être prises pour le javascript Version imprimable.

mais oui .. :) amélioration progressive

Questions connexes