2010-01-14 20 views
10

एक्सेस करना मैं पृष्ठभूमि टैब से किसी पृष्ठ से जानकारी निकालने के लिए वर्तमान टैब को कैसे एक्सेस कर सकता हूं, यह जानने के लिए वेब पर खोज कर रहा हूं। अब तक मुझे कोई भाग्य नहीं मिला है, या कम से कम कुछ भी मैं ठीक से काम करने के लिए नहीं मिल सकता है।Google क्रोम एक्सटेंशन - डीओएम

समस्या को बस बताएं। मैं पेज पर iFrame का स्रोत प्राप्त करना चाहता हूं। कोई सुझाव?

उत्तर

7

एक तरीका, आप इसे सामग्री-स्क्रिप्ट के लिए एक बार अनुरोध के रूप में देखते हैं जो उस डोमेन को लाएगा जिसे आप एक्सेस करना चाहते हैं। http://code.google.com/chrome/extensions/messaging.html#simple

असल में, अपनी सामग्री स्क्रिप्ट श्रोता सेट:

chrome.extension.onRequest.addListener(
    function(request, sender, sendResponse) { 
    if (request.greeting == "hello") 
     sendResponse({farewell: "goodbye"}); 
    else 
     sendResponse({}); // snub them. 
    }); 

और अपनी पृष्ठभूमि पृष्ठ एक ही रहता अनुरोध भेजता है:

chrome.tabs.getSelected(null, function(tab) { 
    chrome.tabs.sendRequest(tab.id, {greeting: "hello"}, function(response) { 
    console.log(response.farewell); 
    }); 
}); 

जब आप अपनी प्रतिक्रिया भेजने के लिए, आप इसे के रूप में भेज जेएसओएन डेटा, आप जो कुछ भी चाहते हैं उसे प्राप्त कर सकते हैं (जैसे एचटीएमएल, डोम, टेक्स्ट इत्यादि)।

वर्तमान में पृष्ठभूमि पृष्ठ को किसी पृष्ठ की सामग्री के बारे में कुछ भी जानने का एकमात्र तरीका है। याद रखें आपको सामग्री स्क्रिप्ट और टैब अनुमतियों की आवश्यकता होगी।

+8

ध्यान दें कि यह उत्तर पुराना है। 'SendRequest' और 'getSelected' को बहिष्कृत किया गया है। प्रदान की गई स्क्रिप्ट काम नहीं करती है। – sbichenko

+4

aaaand को प्रेषण के साथ प्रतिस्थापित किया जाना चाहिए/मैसेज क्रोम में 20 –

+1

aaaaaand एक उदाहरण उत्कृष्ट होगा। :-) – Ajax

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