web-dev-qa-db-fra.com

Comment les sites Web savent-ils qu'ils ne sont pas la page d'accueil ou le moteur de recherche par défaut?

Pour autant que je sache, il n'y a pas d'exposition API publique de la page d'accueil/du moteur de recherche par défaut d'un navigateur. Alors, comment Google sait-il afficher cela? Cela ne survient que lorsque Google n'est pas la page d'accueil par défaut/le moteur de recherche par défaut de mon navigateur.

Google on-page popup: 'Get to Google faster. Switch your default search engine to Google.'Googe on-page popup: 'Come here often? Make Google your homepage.'

Je peux seulement supposer qu'ils déduisent de nombreuses variables, telles que le référent. Je n'ai pas réussi à creuser dans le code JavaScript compilé de Google. Je ne sais même pas s'il est détecté côté client ou côté serveur.

Je suis sur Firefox 44, mais j'ai également vu ces bannières sur Chrome.

89
Tennyson H

Il y a simplement aucun moyen pour le faire avec JavaScript car la "recherche par défaut/page d'accueil" est la préférence d'un utilisateur et vous n'y avez pas accès sans autorisation de l'utilisateur parce que cela être un problème de sécurité/confidentialité.

Ce que fait Google à chaque visite de l'utilisateur, une annonce promotionnelle avec une icône de fermeture et un bouton OK s'affiche avec des instructions sur la façon de la définir comme page d'accueil par défaut. Au clic de l'un d'entre eux, il crée 2 cookies afin que la prochaine fois il vérifie vos cookies et fasse disparaître les promos. Même lorsque Google est votre page d'accueil et que vous supprimez vos cookies, une bannière est toujours là pour promouvoir Google comme page d'accueil.

J'ai vérifié cela avec Firefox, pas au courant de Chrome.

70
Shailendra Sharma

Je ne sais pas exactement ce que fait Google, mais ce que je ferais:

  • définissez l'URL de la page d'accueil avec un paramètre spécial et vérifiez-le - ' http://www.example.com/#!homepage (empêche les faux négatifs)
  • vérifier le champ Referer:
    • s'il n'est PAS là, supposez que l'utilisateur l'ait tapé manuellement
    • s'il est très similaire pour chaque visite d'utilisateur (et peut-être à ce qui ressemble au début d'une session de navigation - déduit via GA sur chaque page là-bas), supposez que l'utilisateur vient ici en cliquant toujours sur de quelque part
  • définir un cookie, par exemple visitedHelpAboutHomePage lorsque l'utilisateur visite la page "oui, montrez-moi" (peut empêcher les faux négatifs, mais peut également générer des faux positifs)

Notez que le "paramètre spécial" se produit dans le scénario "recherche lancée par la boîte de recherche": il existe un paramètre sourceid qui signifie probablement "source de recherche".

19
Piskvor

Dans mon Firefox (v42), le message "Venez souvent ici?" s'affiche même lorsque Google est défini comme moteur de recherche par défaut.

Dans Safari, je reçois une boîte au même endroit qui dit "Une meilleure façon de naviguer sur le Web: Obtenez Google Chrome"

Dans Opera et Chrome je ne reçois aucune boîte du tout, même si je change mon fournisseur de recherche par défaut pour autre chose que Google.

Donc, je crois que tout ce qu'ils font, c'est la détection du navigateur dans le JavaScript, en utilisant l'objet UserAgent.

11
cutmancometh