2012-12-08 18 views
5

से क्रोम एक्सटेंशन को ट्रिगर करें या क्रोम एक्सटेंशन को आमंत्रित करें, मैं क्रोम में निर्मित पीडीएफ रीडर के रूप में बस इतना ही हल्का होने के लक्ष्य के साथ एक Google क्रोम एक्सटेंशन, विशेष रूप से हल्के ईपीबीबी रीडर लिखने की प्रक्रिया में हूं।माइम प्रकार

जो मैं समझने की कोशिश कर रहा हूं वह यह है कि यदि आप किसी लिंक को क्लिक करते हैं तो स्वचालित रूप से एक्सटेंशन को ट्रिगर कर सकते हैं जो सामान्य रूप से आपको डिस्क पर एक एपब फ़ाइल सहेजने के लिए मजबूर करता है।

एक परिपूर्ण दुनिया में एक एपब फ़ाइल के लिए प्रत्येक लिंक file.epub पर इंगित करेगा और आप विस्तार के लिए इंगित करने के लिए एक सामग्री स्क्रिप्ट का उपयोग करने में सक्षम होंगे, लेकिन दुर्भाग्य से अधिकतर मामला नहीं है। तो मैं जो सोच रहा हूं वह यह है कि HTTP अनुरोध के बाद हेडर को कम से कम वापस करने के बाद इसे ट्रिगर करना होगा, और chrome.webRequest या कुछ के माध्यम से माइम प्रकार से ट्रिगर करना होगा।

क्या आप एक Google क्रोम एक्सटेंशन को आपके द्वारा दी जा रही फ़ाइल के माइम-प्रकार से आमंत्रित कर सकते हैं?

+1

मेरे ज्ञान के लिए, वर्तमान में आपके एक्सटेंशन को विशिष्ट फ़ाइल-प्रकार प्रोसेसर के रूप में पंजीकृत करने की संभावना नहीं है। आपका विकल्प वास्तव में वेब-अनुरोधों को अवरुद्ध करना है और यदि आप एपब फ़ाइल (फ़ाइल एक्सटेंशन या सामग्री-प्रकार शीर्षलेख 'एप्लिकेशन/एपब' द्वारा) का पता लगाते हैं, तो यूआरएल कॉपी करें और इसे अपने एक्सटेंशन के नियंत्रण में नए टैब में खोलें। आपका कमांड 'contextMenus' में जोड़ने और ebups के लिंक पर कार्य करने का अधिक आसान तरीका है। – Stan

उत्तर

0

मान लें कि आप सभी कार्यक्षमता के लिए ब्राउज़र कार्य कर रहे हैं, आप का पता लगाने और chrome.webRequest.onHeadersReceived, chrome.browserAction.enable() और chrome.browserAction.disable() के साथ \ अक्षम एक्सटेंशन सक्षम कर सकते हैं

छद्म कोड

manifest.json

{ 
    "name": "Detect Mime type", 
    "version": "1.0", 
    "description": "Detecting Mime type and enabling browser action", 
    "permissions": ["webRequest", "webRequestBlocking", 
        "<all_urls>"], 
    "background": { 
    "scripts": ["background.js"] 
    }, 
    "browser_action":{ 
    "default_popup":"popup.html", // Use you related code here 
    "default_icon":"icon.jpg" 
    },  
    "manifest_version": 2 
} 

background.js

chrome.webRequest.onHeadersReceived.addListener(function (object){ 
    // Do your code for related header(s) 
    //Invoke chrome.browserAction.enable(integer tabId) or chrome.browserAction.disable(integer tabId) 
},{urls: ["<all_urls>"]}); 
chrome.tabs.query({"status":"complete"}, function(tabs){ 
    //Disable all browser actions using chrome.browserAction.disable(integer tabId) 
}); 

आप अधिक जानकारी की जरूरत है, तो मुझे जानते हैं।

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