omnibox.onInputEntered
======================

Lancé lorsque l'utilisateur a sélectionné l'une des suggestions que votre extension a ajoutées à la liste déroulante de la barre d'adresse.

Utilisez cet événement pour gérer la sélection de l'utilisateur, généralement en ouvrant la page correspondante. L'écouteur d'événement est transmis w:

* la sélection de l'utilisateur
* Un `omnibox.OnInputEnteredDisposition`: utilisez cette option pour déterminer si vous souhaitez ouvrir la nouvelle page dans l'onglet actuel, dans un nouvel onglet de premier plan ou dans un nouvel onglet d'arrière-plan.
Syntaxe
-------


```js
browser.omnibox.onInputEntered.addListener(listener);
browser.omnibox.onInputEntered.removeListener(listener);
browser.omnibox.onInputEntered.hasListener(listener);
```


Les événements ont trois fonctions :

`addListener(listener)`

Ajoute un écouteur à cet événement.

`removeListener(listener)`

Arrêtez d'écouter cet événement. L'argument `listener` est l'écouteur à supprimer.

`hasListener(listener)`

Vérifiez si `listener` est enregistré pour cet événement. Renvoie `true` s'il écoute, sinon `false`.

Syntaxe addListener
-------------------

La fonction d'écouteur recevra deux paramètres: une chaine de `text`, et un `omnibox.OnInputEnteredDisposition`.

### Paramètres

`text`

`String`. C'est la valeur de la propriété `content` de l'objet `omnibox.SuggestResult` que l'utilisateur a sélectionné.

`disposition`

`OnInputEnteredDisposition`. Une `omnibox.OnInputEnteredDisposition` énumération, indiquant si l'extension doit ouvrir la page dans l'onglet en cours, dans un nouvel onglet de premier plan ou dans un nouvel onglet d'arrière-plan.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Exemples
--------

Cet exemple interprète l'entrée de l'utilisateur en tant que nom de propriété CSS et remplit la liste déroulante avec un objet `omnibox.SuggestResult` pour chaque propriété CSS correspondant à l'entrée. La `description SuggestResult` est le nom complet de la propriété et le `contenu` est la page MDN de cette propriété.

L'exemple écoute également `omnibox.onInputEntered`, et ouvre la page MDN correspondant à la sélection, conformément à l'argument `omnibox.OnInputEnteredDisposition`.


```js
browser.omnibox.setDefaultSuggestion({
  description: "Type the name of a CSS property",
});

/\*
Very short list of a few CSS properties.
\*/
const props = [
  "animation",
  "background",
  "border",
  "box-shadow",
  "color",
  "display",
  "flex",
  "flex",
  "float",
  "font",
  "grid",
  "margin",
  "opacity",
  "overflow",
  "padding",
  "position",
  "transform",
  "transition",
];

const baseURL = "https://developer.mozilla.org/fr/docs/Web/CSS/";

/\*
Return an array of SuggestResult objects,
one for each CSS property that matches the user's input.
\*/
function getMatchingProperties(input) {
  var result = [];
  for (prop of props) {
    if (prop.indexOf(input) === 0) {
      console.log(prop);
      let suggestion = {
        content: baseURL + prop,
        description: prop,
      };
      result.push(suggestion);
    } else {
      if (result.length != 0) {
        return result;
      }
    }
  }
  return result;
}

browser.omnibox.onInputChanged.addListener((input, suggest) => {
  suggest(getMatchingProperties(input));
});

browser.omnibox.onInputEntered.addListener((url, disposition) => {
  switch (disposition) {
    case "currentTab":
      browser.tabs.update({ url });
      break;
    case "newForegroundTab":
      browser.tabs.create({ url });
      break;
    case "newBackgroundTab":
      browser.tabs.create({ url, active: false });
      break;
  }
});
```

### Example extensions

* firefox-code-search

**Note :**

Cette API est basée sur l'API Chromium `chrome.omnibox`.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.