2013-05-12 15 views
42

Nella mia cartella StackOverflow, ho stackoverflow.ico e 2 file muggenti. Quando lo importa su Chrome, mostra l'icona nella barra degli indirizzi, ma quando faccio clic su di esso, Chrome non apre alcuna nuova scheda. Che cosa sto facendo di sbagliato?Estensione Chrome: come si apre un collegamento in una nuova scheda?

manifest.json

{ 
    "name": "Stackoverflow", 
    "version": "1", 
    "browser_action": 
    { 
    "default_icon": "stackoverflow.ico" 
    }, 
    "background": 
    { 
    "page": "index.html" 
    }, 
    "permissions": ["tabs"], 
    "manifest_version": 2 
} 

index.html

<html> 
    <head> 
    <script> 
     chrome.browserAction.onClicked.addListener(function(activeTab) 
     { 
     var newURL = "http://stackoverflow.com/"; 
     chrome.tabs.create({ url: newURL }); 
     }); 
    </script> 
    </head> 
</html> 

risposta

65

Il problema è che si stanno violando manifest version 2's content security policy. Per risolvere tutto ciò che devi fare è eliminare lo script inline, in questo caso lo sfondo page. Trasformarlo in un fondo script come questo:

manifest.json

"background":{ 
    "scripts": ["background.js"] 
}, 

background.js

chrome.browserAction.onClicked.addListener(function(activeTab){ 
    var newURL = "http://stackoverflow.com/"; 
    chrome.tabs.create({ url: newURL }); 
}); 

Se, per qualche motivo, si ha bisogno di essere un pagina, quindi includi semplicemente lo script come file esterno e lo dichiari come una pagina come prima.

+2

Grazie. Ha funzionato ora! – Sakura

Problemi correlati