javascript texte Comment déclencher un événement uniquement lorsque l'utilisateur modifie l'URL?




javascript cacher div onclick (2)

Je travaille sur une extension Chrome, je veux détecter quand l'utilisateur a tapé une URL. Je sais à propos de:

chrome.tabs.onUpdated.addListener(eventLisenerObj.onUpdated);

Mais, il est appelé chaque fois que l'URL est modifiée (par exemple lorsque la page est rechargée automatiquement, ou que l'utilisateur clique sur un lien, etc.)

Je souhaite être en mesure de déterminer que l'URL a été modifiée uniquement par l'utilisateur en tapant une URL.


Vous pouvez obtenir cette information en utilisant l' webNavigation.onCommitted ( MDN ) . L'écouteur d'événement reçoit une propriété transitionType ( MDN ) , qui sera différente des valeurs ( MDN ) en fonction de la cause de la navigation. Les valeurs sur lesquelles vous déclenchez dépendront exactement de ce que vous désirez. Pour ce que vous décrivez, vous voudrez probablement 'typed' ( MDN ) , mais potentiellement aussi 'generated' ( MDN ) , 'keyword' ( MDN ) et / ou 'keyword_generated' ( MDN ) .

La liste des valeurs possibles est expliquée sur la page API Google Chrome (elles sont répertoriées sur la page Chrome webNavigation , mais ne sont pas expliquées ici) (Sur MDN: TransitionType ) (texte de la page API Google Chrome History):

  • "link"
    L'utilisateur a accédé à cette page en cliquant sur un lien sur une autre page.
  • "typed"
    L'utilisateur a obtenu cette page en tapant l'URL dans la barre d'adresse. Également utilisé pour d'autres actions de navigation explicites. Voir aussi generated ( MDN ) , qui est utilisé pour les cas où l'utilisateur a sélectionné un choix qui ne ressemblait pas du tout à une URL.
  • "auto_bookmark"
    L'utilisateur a accédé à cette page via une suggestion dans l'interface utilisateur, par exemple via un élément de menu.
  • "auto_subframe"
    Navigation dans le sous-cadre. C'est n'importe quel contenu qui est automatiquement chargé dans un cadre non de niveau supérieur. Par exemple, si une page comprend plusieurs cadres contenant des annonces, ces URL possèdent ce type de transition. L'utilisateur peut même ne pas se rendre compte que le contenu de ces pages est un cadre distinct et peut donc ne pas se soucier de l'URL (voir aussi manual_subframe ( MDN ) ).
  • "manual_subframe"
    Pour les navigations de sous-trames explicitement demandées par l'utilisateur et qui génèrent de nouvelles entrées de navigation dans la liste arrière / avant. Une trame explicitement demandée est probablement plus importante qu'une trame chargée automatiquement car l'utilisateur se soucie probablement du fait que la trame demandée a été chargée.
  • "generated"
    L'utilisateur a accédé à cette page en tapant la barre d'adresse et en sélectionnant une entrée qui ne ressemblait pas à une URL. Par exemple, une correspondance peut avoir l'URL d'une page de résultats de recherche Google, mais elle peut apparaître à l'utilisateur comme "Rechercher Google pour ...". Ce ne sont pas tout à fait les mêmes que typed navigations typed ( MDN ) car l'utilisateur n'a pas typed ou n'a pas vu l'URL de destination. Voir aussi keyword ( MDN ) .
  • "auto_toplevel"
    La page a été spécifiée dans la ligne de commande ou est la page de démarrage.
  • "form_submit"
    L'utilisateur a rempli des valeurs dans un formulaire et l'a soumis. Notez que dans certaines situations, par exemple lorsqu'un formulaire utilise un script pour soumettre un contenu, l'envoi d'un formulaire n'entraîne pas ce type de transition.
  • "reload"
    L'utilisateur a rechargé la page, soit en cliquant sur le bouton de rechargement, soit en appuyant sur Entrée dans la barre d'adresse. La restauration de session et l'onglet Reopen closed utilisent également ce type de transition.
  • "keyword"
    L'URL a été générée à partir d'un mot clé remplaçable autre que le moteur de recherche par défaut. Voir aussi keyword_generated ( MDN ) .
  • "keyword_generated"
    Correspond à une visite générée pour un mot clé. Voir aussi keyword ( MDN ) .

Pour différencier certains types de transitions, en plus des valeurs de transitionType , vous voudrez également regarder le TransitionQualifier ( MDN ) . Les valeurs possibles sont (à partir de la documentation de Chrome , qui sont décrites différemment sur MDN ):

  • "client_redirect"
    Une ou plusieurs redirections provoquées par des balises JavaScript ou meta refresh sur la page se sont produites pendant la navigation.
  • "server_redirect"
    Une ou plusieurs redirections provoquées par les en-têtes HTTP envoyés depuis le serveur se sont produites pendant la navigation.
  • "forward_back"
    L'utilisateur a utilisé le bouton Suivant ou Précédent pour lancer la navigation.
  • "from_address_bar"
    L'utilisateur a initié la navigation à partir de la barre d'adresse (aka Omnibox).

Vous pouvez jeter un oeil à $locationChangeSuccess .

Vous pouvez obtenir le chemin comme ceci:

var loc = $location.path();

Ensuite, au changement de loc vous pouvez attacher votre fonction.





firefox-webextensions