2011-03-23 10 views
19

उपयोगकर्ता द्वारा खोले गए सभी टैब के माध्यम से मैं फिर से कैसे शुरू करूंगा और फिर जांच कर सकता हूं कि उनके पास id = 'item' के साथ कोई विशेष HTML आइटम है या नहीं? यदि आप इसे इस तरह से कर सकते हैं अपने मद की देखभाल करनेक्रोम-एक्सटेंशन: सभी टैब के माध्यम से पुनरावृत्त?

chrome.tabs.getAllInWindow(null, function(tabs){ 
    for (var i = 0; i < tabs.length; i++) { 
    chrome.tabs.sendRequest(tabs[i].id, { action: "xxx" });       
    } 
}); 

उसके बाद,:

उत्तर

14

आप इस तरह यह कर सकते हैं

document.getElementById('item') 

मत भूलना कि आप नहीं कर सकते "पृष्ठभूमि पृष्ठ" का उपयोग कर एचटीएमएल में हेरफेर करें तो पहला कोड स्निप पृष्ठभूमि पृष्ठ के लिए है, और दूसरा सामग्री स्क्रिप्ट पर होना चाहिए;)

+0

आह तुम मुझे यह करने के लिए हराया: पी –

+0

आप तत्व वह document.getElementById ('आइटम') = अशक्त भेजने के लिए और बचाने के लिए कर सकते हैं कि जांच करने के लिए जोड़ सकते हैं कहीं और यह निर्धारित करने के लिए इसे पुनर्प्राप्त करें कि पृष्ठ पर तत्व मौजूद है या नहीं। –

+0

क्षमा करें दोस्त ... ^^ – Sindar

45

ऐसा प्रतीत होता है कि इस विधि को 012 के पक्ष में बहिष्कृत कर दिया गया है:

http://developer.chrome.com/extensions/tabs.html#method-query

तो अब आप क्या करना चाहते हैं:

chrome.tabs.query({}, function(tabs) { /* blah */ }); 

एक खाली queryInfo पैरामीटर पासिंग टैब के सभी लौट आते हैं।

+2

लेकिन यह टैब पर फिर से कैसे सक्रिय होता है? क्या 'टैब' के लिए कोई लंबा तरीका है? अधिकांश एपीआई विधियों में एक टैब या टैब प्रॉपर्टी होती है, इसलिए आपको उन्हें 'टैब [0] ... टैब [n] 'जैसे चर के साथ अनुक्रमणित करना होगा। एन कैसे प्राप्त करें? – jiggunjer

+0

@jiggunjer, n = tabs.length, टैब - एक सरणी –

+0

@ गोल्डन है, यदि आप पहले तर्क को '{}' के बजाय 'null' के रूप में रखते हैं तो क्या होता है? – Pacerier

0

मैं का उपयोग इस एक

chrome.tabs.getAllInWindow(null, function(tabs) { 
     $.each(tabs, function() { 
     // u can use 'this.id' to work with evey tab 
     }); 
});