2013-05-12 29 views
42

私のStackoverflowフォルダには、stackoverflow.icoと2つのファイルがあります。 Chromeにインポートすると、アドレスバーにアイコンが表示されますが、クリックすると新しいタブは表示されません。私は間違って何をしていますか?Chrome拡張機能:新しいタブでリンクを開くにはどうすればよいですか?

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> 

答えて

65

問題は、あなたがmanifest version 2's content security policyに違反しているということです。これを修正するには、インラインスクリプトを取り除くだけです。この場合、背景はpageです。何らかの理由で、あなたがすることが必要なのか、場合

manifest.jsonを

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

background.js

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

:このような背景scriptにそれを回し単に外部ファイルとしてスクリプトをインクルードし、前と同じようにページとして宣言します。

+2

ありがとうございます。それは今働いた! – Sakura

関連する問題