2012-04-21 16 views
8

के साथ यूआरएल (अतिरिक्त पैरामीटर के साथ) को फिर से लिखना संभव है, मैं उपयोगकर्ता द्वारा टाइप किए गए यूआरएल में कुछ अतिरिक्त पैरामीटर जोड़ने की कोशिश कर रहा हूं (पृष्ठ लोड होने से पहले)। यह करना संभव है?क्या क्रोम एक्सटेंशन

उदाहरण के लिए, उपयोगकर्ता प्रकार www.google.com, मैं ?q=query संलग्न करने के लिए यूआरएल के लिए (चाहते हैं तो अंतिम:।। www.google.com?q=query

धन्यवाद

उत्तर

8

webRequest एपीआई हो सकता है कि तुम क्या जरूरत है इस कोड को अपनी पृष्ठभूमि पेज में चला जाता है :

chrome.webRequest.onBeforeRequest.addListener(
    function(details) { 
     if(details.url == "http://www.google.com/") 
      return {redirectUrl: "http://www.google.com/?q=defaultquery" }; 
    }, 
    {urls: ["http://www.google.com/*"]}, 
    ["blocking"]); 

यह एक बहुत ही विशिष्ट नियम है कि http://www.google.com/?q=defaultquery साथ http://www.google.com/ का दौरा करने रीडायरेक्ट कर देता है, लेकिन मुझे लगता है कि आप ca n अधिक कार्यक्षमता को शामिल करने के लिए इसे विस्तारित करने का तरीका देखें।

ध्यान दें कि यह सभीhttp://www.google.com/ तक पहुंचने का प्रयास करेगा, जिसमें अजाक्स अनुरोध और iframes शामिल हैं।

"permissions": [ 
    "webRequest", 
    "webRequestBlocking", 
    "*://*.google.com/", 
    ... 
], 
+0

किन फ़ाइल मैं इस कोड लिखना चाहिए, हम कैसे इस बात के लिए अनुमति जोड़ें। – anwerj

+1

@anwerjunaid उपरोक्त पाठ से: "कोड आपके पृष्ठभूमि पृष्ठ में जाता है।" आवश्यक अनुमतियों को वेबरक्वेट दस्तावेज में पहले अनुच्छेद में वर्णित किया गया है (http://code.google.com/chrome/extensions/webRequest.html), जिसे मैंने पहले से ही लिंक किया है। आपको 'webRequest',' webRequestBlocking', और प्रत्येक साइट के लिए होस्ट अनुमतियां चाहिए जिन्हें आप अवरुद्ध करना चाहते हैं। – apsillers

1

यह एक पुरानी सवाल अब भी मैं इसे का जवाब दे रहा हूँ:

प्रलेखन के अनुसार, आप आप को बीच में रोकने की योजना webRequest और webRequestBlocking अनुमतियां जोड़ने के लिए, हर मेजबान के लिए मेजबान अनुमतियों के साथ की आवश्यकता होगी भविष्य के पाठकों के लिए।

क्वेरी पैरामीटर का संशोधन एक छोटे से मुश्किल है क्योंकि आप अनंत लूप और क्रोम में/फ़ायरफ़ॉक्स यह पता लगा सकता है और प्रक्रिया जो भी अनुरोध यूआरएल की वर्तमान स्थिति है endup कर सकते हैं।

मैं अपने क्रोम एक्सटेंशन Requestly जहां उपयोगकर्ता Replace Rule का इस्तेमाल किया और www.google.com?q=query साथ www.google.com प्रतिस्थापित या कुछ इसी तरह किया था में इस स्थिति का सामना करना पड़ा है।

इस दृष्टिकोण के साथ समस्या ब्राउज़र पैरामीटर जोड़ने के बाद अनुरोध url को रोक सकता है ताकि पैरामीटर कई बार जोड़ा जाएगा और यूआरएल को दूषित कर दिया जाएगा। तो आपको निम्न में से कोई भी सुनिश्चित करना होगा: -

  1. इसे पुनर्निर्देशित करने के बाद अनुरोध को अवरुद्ध न करें।
  2. जांचें कि पैरामीटर पहले से मौजूद है या नहीं, इसे रीडायरेक्ट न करें।

जैसा कि उनके जवाब में @apsillers द्वारा सही ढंग से इंगित किया गया है, आपको URL में कोई भी संशोधन करने के लिए webRequest API का उपयोग करना होगा। कृपया उसके answer पर एक नज़र डालें और तदनुसार अपना कोड लिखें।

बस अगर आप पहले से ही उपलब्ध समाधान की तलाश में हैं, तो Requestly's Query Parameter Rule पर प्रयास करने पर विचार करें। यह इस प्रकार से की तरह दिखता है पर एक स्क्रीनशॉट है: -

enter image description here

Firefox के लिए, आप डाउनलोड कर सकते हैं Requestly from its home page.

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