2013-07-25 12 views
7

Ho sviluppato un'estensione chrome che apre un popup quando faccio clic sull'icona accanto alla barra degli indirizzi. Tutto funziona bene, tuttavia voglio aggiungere alcune funzionalità ad esso. Quindi ho pensato di aggiungere anche una voce di menu contestuale in modo che l'utente possa semplicemente cercare la parola evidenziata. Voglio che il popup si mostri quando l'utente fa clic sull'elemento nel menu di scelta rapida (il popup predefinito nell'angolo in alto a destra e non una nuova finestra popup o una nuova scheda).Come aprire il popup predefinito dal menu di scelta rapida in un'estensione di cromo

Posso avere questa funzionalità? Se sì, come posso implementarlo?

+3

Non è possibile aprire programatically comparsa dell'azione browser. –

+0

Ma non voglio perdere il contesto della scheda attualmente attiva dell'utente. Quali alternative ho? Allora apro l'url in una nuova finestra? – Annihilator8080

+1

Correlato/duplicato: [Come posso aprire la mia estensione pop-up con JavaScript?] (Http://stackoverflow.com/q/10479679/710446) (Risposta: non è possibile.) – apsillers

risposta

7

Non è possibile visualizzare la pagina popup a livello di programmazione come se l'utente avesse fatto clic.

Tuttavia, è ancora possibile visualizzare qualcosa in base allo script di sfondo/al menu di contenuto. Ci sono 4 opzioni principali per lo script di fondo:

  1. aprire una nuova scheda alla pagina popup.html
  2. Programmatic injection di javascript per costruire una finestra pop-up simile nella pagina
  3. Content script message passing a fare lo stesso come sopra, usando uno script di contenuto in esecuzione.
  4. Utilizzare lo notifications API per un messaggio minimamente stilizzato per l'utente.

Le opzioni 2, 3, 4 consentono all'utente di rimanere nella propria scheda senza alcuna navigazione. La route dell'API per le notifiche è la più semplice da utilizzare se si desidera una notifica rapida all'utente e ci sono meno problemi di sicurezza. 2 e 3 richiedono più libri contabili, ma puoi rendere la finestra di dialogo simile al tuo popup.

+0

Sei a conoscenza di un esempio per # 2? La pagina collegata mostra semplicemente come possiamo modificare il DOM esistente, ma non per costruire la finestra di dialogo. – AdamMc331

+0

Non appena si può fare PI, è possibile costruire una finestra di dialogo in ogni caso tramite javascript. L'unico problema qui è che il PI per CSS, HTML e JS necessari può diventare complicato a causa della contabilità. Vedere l'esempio di seguito, per puro codice js che creerebbe una finestra di dialogo. Se hai dato questo codice per l'esecuzione, come nell'esempio PI sopra, dovrebbe rendere la finestra di dialogo sulla pagina. https://jsfiddle.net/pzw7kfvf/ –

Problemi correlati