1

Est-il possible d'écouter un événement de copie qui n'apparaît pas dans le document d'une page HTML, comme la barre d'URL de la fenêtre du navigateur?Extensions Chrome: détecter l'action de copie dans la barre d'URL de Windows

Peut-être qu'il y a une API d'extension de Chrome ou une solution astucieuse que je néglige?

+1

Il n'y a pas d'API intégrée. Vous pouvez cependant écrire votre propre utilitaire OS natif pour le faire, et communiquer via nativeMessaging avec l'extension. – wOxxOm

Répondre

0

Voici la solution possible, n'est pas la meilleure, mais mieux que rien.

Il surveille le presse-papier pour les URL, et si une URL collée est la même que dans l'onglet actuel - nous pouvons considérer qu'il a été copié à partir omnibox.

background.js:

// create element for pasting 
const textEl = document.createElement('textarea'); 
document.body.appendChild(textEl); 

var prevPasted = ''; 
setInterval(function() { 
    // paste text from clipboard to focused textarea 
    textEl.focus(); 
    textEl.value = ''; 
    document.execCommand('paste'); 
    const pastedText = textEl.value; 

    // simple cache check 
    if (pastedText !== prevPasted) { 
     prevPasted = pastedText; 

     if (pastedText.match(/https?:/)) { // you can improve you URL scheme 

      // get the current tab 
      chrome.tabs.query({active: true, currentWindow: true}, function (tabs) { 
       var tab = tabs[0]; 

       // check if current tab has the same URL 
       if (tab.url === pastedText) { 
        console.log('Omnibox URL:', pastedText); 
       } 
      }); 
     } 
    } 
}, 500); 

Ne pas oublier d'ajouter des autorisations clipboardRead et onglets dans le manifeste.