2013-05-12 9 views
42

मेरी Stackoverflow फ़ोल्डर में, मैं stackoverflow.ico और 2 bellow फ़ाइलों की है। क्रोम पर इसे आयात करते समय, यह पता बार में आइकन दिखाता है, लेकिन जब मैं उस पर क्लिक करता हूं, तो क्रोम कोई नया टैब नहीं खोलता है। मैं क्या गलत कर रहा हूं?क्रोम एक्सटेंशन: नए टैब में एक लिंक कैसे खोलें?

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। एक पृष्ठभूमि script इस तरह में बदल:

manifest.json

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

background.js

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

यदि किसी कारण के लिए, आप इसे की आवश्यकता है एक होने के लिए पृष्ठ, फिर बस स्क्रिप्ट को बाहरी फ़ाइल के रूप में शामिल करें और इसे पहले जैसा पृष्ठ घोषित करें।

+2

धन्यवाद। यह अब काम किया! – Sakura

संबंधित मुद्दे