2015-03-15 10 views
5

Ho bisogno di eseguire l'estensione di Chrome quando viene aperta una nuova scheda e caricato il documento html.Attiva l'estensione di Chrome su una nuova scheda aperta

L'estensione deve controllare il nuovo titolo della scheda e se è uguale alla stringa predefinita, la scheda deve essere chiusa.

Per ora, riesco a scrivere un'estensione che funziona quando faccio clic sulla sua icona. Ma voglio farlo funzionare senza cliccare sull'icona dopo che la pagina è stata caricata in una nuova scheda.

Questo è il codice corrente.

function getCurrentTabData(callback) { 
    var queryInfo = { 
    active: true, 
    currentWindow: true 
    }; 
    chrome.tabs.query(queryInfo, function(tabs) { 
    var tab = tabs[0]; 
    var title = tab.title; 
    var id = tab.id; 
    callback(title, id); 
    }); 
} 

document.addEventListener('DOMContentLoaded', function() { 

    getCurrentTabData(function(title, id) { 

    if(title == 'Page title') { 
     chrome.tabs.remove(id, function() { }); 
    } 

    }); 
}); 

E qui è la mia manifest.json

{ 
    "manifest_version": 2, 

    "name": "Auto close tab", 
    "description": "Auto closes tab if title is matched", 
    "version": "1.0", 

    "browser_action": { 
    "default_icon": "icon.png" 
    }, 
    "permissions": [ 
    "activeTab" 
    ] 
} 

Come per farlo funzionare senza click sulla sua icona?

risposta

7

Per fare ciò, prima di tutto è necessario disporre di una Pagina sfondo che gestirà il proprio stato di estensione. Si può leggere su qui: https://developer.chrome.com/extensions/background_pages

Poi nello script di sfondo della pagina è necessario ascoltare quando la scheda è creato con questo pezzo di codice:

chrome.tabs.onCreated.addListener(function callback) 

Ecco la documentazione per questo: https://developer.chrome.com/extensions/tabs#event-onCreated

Spero che questo ti aiuti a risolvere il tuo problema.

Problemi correlati