2013-05-12 10 views
42

W moim folderze Stackoverflow mam stackoverflow.ico i 2 pliki poniżej. Podczas importowania do Chrome wyświetla ikonę na pasku adresu, ale kiedy klikam w nią, Chrome nie otwiera żadnej nowej karty. Co ja robię źle?Rozszerzenie Chrome: jak otworzyć link w nowej karcie?

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> 

Odpowiedz

65

Problemem jest to, że łamią manifest version 2's content security policy. Aby to naprawić, musisz tylko usunąć skrypt wbudowany, w tym przypadku tło page. Przekształcić go w tle script tak:

manifest.json

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

background.js

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

Jeśli z jakiegoś powodu, trzeba go będzie stronę, po prostu dołącz skrypt jako plik zewnętrzny i zadeklaruj go jako stronę podobną do poprzedniej.

+2

Dziękuję. Działało teraz! – Sakura

Powiązane problemy