Sto scrivendo un'estensione per Chrome e, in una parte, ho bisogno di ottenere il titolo e l'URL della scheda corrente quando si fa clic su un pulsante nella pagina popup.Estensione Chrome: ottieni la scheda corrente dal popup
Ho già lavorato con il sistema di trasmissione dei messaggi di Chrome e, dopo molti sforzi, sono riuscito a farlo funzionare, in molte occasioni. Tuttavia, non ho mai dovuto usarli con le pagine popup e, da quello che ho letto, è molto più difficile da fare.
La timeline Sono riuscito a capire finora è questo:
popup.html
/popup.js
: pulsante viene cliccatopopup.html
/popup.js
: Richiesta/messaggio viene inviato al contenuto scriptcontentScript.js
: Richiesta/messaggio viene ricevuto dalla pagina popupcontentScript.js
: Il titolo e l'URL della scheda corrente sono memorizzati in una variabilecontentScript.js
: Le 2 variabili vengono inviate come risposta rafforzatapopup.html
/popup.js
: Le 2 variabili sono analizzati dalla risposta
Di solito io sarei in grado di capire questo, ma, ho letto alcune cose che hanno gettato un bastone tra le ruote , ad esempio:
chrome.tabs.getSelected
può essere utilizzato solo in una pagina di sfondo/script. Questo significa che gli script di contenuto non devono essere usati affatto?- I messaggi non possono essere inviati direttamente dallo script di contenuto alla pagina popup, devono passare attraverso una pagina di sfondo
- Una finestra popup deve essere confermata come esistente prima che un messaggio possa essere passato ad esso (anche se, penso So come farlo)
Ho già trovato il sistema di passaggio dei messaggi di Chrome abbastanza difficile ma, questo mi ha totalmente confuso. Quindi, questo post.
'cromato. tabs.getSelected' è deprecato (e anche non elencato in documenti) a favore di 'chrome.tabs.query'. Non sono sicuro che 'chrome.tabs.query' funzioni nelle pagine popup. – Stan
Avete suggerimenti sull'utilizzo? – mythofechelon
Puoi continuare a usare 'getSelected' finché non è supportato, o testare se' query' funziona, specialmente con manifest versione 2 (la versione 1 verrà interrotta l'anno prossimo). Come ultima risorsa, puoi ascoltare le schede di Chrome 'onCreated',' onActivated' nella tua pagina di sfondo, salvare la scheda attiva in una variabile e restituirla, ad esempio, in un metodo chiamato 'getCurrentTab', e quindi richiamarla dal popup proprio come che: 'chrome.extension.getBackgroundPage(). getCurrentTab()'. La query – Stan