2015-06-02 7 views
7

कोई स्थिति किसी भी अनुरोधित यूआरएल को अवरुद्ध करने के लिए कैसे रोक सकती है अगर कुछ हालत मेल खाती है?क्रोम एक्सटेंशन: अनुरोधित यूआरएल को कैसे रोकें?

Similar question for Firefox.

क्या अनुमति manifest.json में निर्धारित करने की आवश्यकता?

+0

कृपया इस प्रश्न में पर्याप्त जानकारी शामिल करें ताकि अगर उत्तरदायी हो, तो लिंक उत्तरदायी हो सकता है। संबंधित प्रश्नों से जुड़ने के लिए यह ठीक है और प्रोत्साहित किया गया है, लेकिन _this_ प्रश्न स्वयं ही खड़ा होना चाहिए। – Xan

+2

@intika आपके संपादन को स्वीकृत/सुधार, फिर से खोलने के लिए नामांकित। – Xan

उत्तर

15

जावास्क्रिप्ट कोड:

निम्नलिखित उदाहरण यह दर्शाता www.evil.com लिए सभी अनुरोधों को अवरुद्ध करने के लिए कैसे:

chrome.webRequest.onBeforeRequest.addListener(
    function(details) { 
    return {cancel: details.url.indexOf("://www.evil.com/") != -1}; 
    }, 
    { urls: ["<all_urls>"] }, 
    ["blocking"] 
); 

निम्न उदाहरण एक और अधिक कुशल तरीके से एक ही लक्ष्य को प्राप्त होता है क्योंकि www.evil.com पर लक्षित अनुरोधों को एक्सटेंशन में पास करने की आवश्यकता नहीं है:

chrome.webRequest.onBeforeRequest.addListener(
    function(details) { 
    return { cancel: true }; 
    }, 
    {urls: ["*://www.evil.com/*"]}, 
    ["blocking"] 
); 

पंजीयन घटना श्रोताओं:

एक वेब अनुरोध के लिए एक घटना श्रोता रजिस्टर करने के लिए, आप हमेशा की addListener() समारोह पर एक परिवर्तन का उपयोग करें। कॉलबैक फ़ंक्शन निर्दिष्ट करने के अतिरिक्त, आपको एक फ़िल्टर तर्क निर्दिष्ट करना होगा और आप एक वैकल्पिक अतिरिक्त जानकारी तर्क निर्दिष्ट कर सकते हैं।

वेब अनुरोध एपीआई addListener को तीन तर्कों() निम्नलिखित परिभाषा है:

var callback = function(details) {...}; 
var filter = {...}; 
var opt_extraInfoSpec = [...]; 

यहाँ onBeforeRequest घटना के लिए सुनने की एक उदाहरण है:

chrome.webRequest.onBeforeRequest.addListener(
    callback, filter, opt_extraInfoSpec); 

अनुमति प्रकट पर की जरूरत है। जेसन:

"permissions": [ 
    "webRequest", 
    "webRequestBlocking", 
"tabs", 
"<all_urls>" 
], 

एक्सटेंशन उदाहरण और मदद लिंक:

+2

अब यह एक बेहतर जवाब है। ऐसा करने के लिए समय लेने के लिए धन्यवाद। – Xan

+0

@intika बहुत अधिक जवाब की सराहना की। बस स्वरूपण में सुधार हुआ। – sachinjain024

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