2012-10-31 6 views
21

इस फ़ंक्शन में कॉलबैक है: फ़ंक्शन (किसी भी परिणाम की सरणी) {...};chrome.tabs.executeScript (आईडी, विवरण, कॉलबैक) के बारे में

लेकिन मुझे नहीं पता कि परिणाम का क्या अर्थ है।

उदाहरण के लिए, chrome.tabs..executeScript (शून्य, {कोड: "var x = 10"}, समारोह() {});

कॉलबैक में "x" को वापस कैसे करें?

+0

[Google समूह में यह प्रश्न] देखें (https://groups.google.com/a/chromium.org/forum/?fromgroups=#!topic/chromium-extensions/Nco_o24bZ9A)। – Stan

उत्तर

31

एक स्क्रिप्ट का परिणाम अंतिम अभिव्यक्ति का मूल्यांकन किया जा रहा है। तो अपने उदाहरण में आप इस्तेमाल कर सकते हैं:

chrome.tabs.executeScript(null, {code:"var x = 10; x"}, 
    function(results){ console.log(results); }); 

इस विस्तार के कंसोल के लिए प्रवेश करेंगे [10]

परिणाम वास्तव में मानों की एक सरणी है क्योंकि यदि पृष्ठ में एक से अधिक फ्रेम हैं तो आप निर्दिष्ट कर सकते हैं कि स्क्रिप्ट को उनमें से प्रत्येक में इंजेक्शन दिया जाना चाहिए और सभी इंजेक्शन का परिणाम प्राप्त करना चाहिए। executeScript के लिए विनिर्देश देखें। यदि आप सभी फ़्रेम निर्दिष्ट नहीं करते हैं: सत्य, तो परिणाम हमेशा एक तत्व तत्व सरणी होगी।

+0

मेरे पास यह 'chrome.tabs.executeScript (शून्य, {कोड:" var x = 10; x "} है, फ़ंक्शन (परिणाम) {चेतावनी (परिणाम);}); लेकिन एक अलर्ट के रूप में अपरिभाषित हो जाता है। क्या आपके पास कोई सुराग है कि ऐसा क्यों हो सकता है? – user1032613

+2

@ user1032613 ऐसा होगा यदि आपके एक्सटेंशन में वर्तमान टैब पर एक स्क्रिप्ट निष्पादित करने की अनुमति नहीं है। सुनिश्चित करें कि डोमेन आपके 'manifest.json' की सेटिंग 'सेटिंग' में शामिल है – rsanchez

+1

धन्यवाद! और मुझे अभी एहसास हुआ कि, manifest.json में किए गए संशोधन केवल एक्सटेंशन को पुनर्स्थापित करने के बाद प्रभावी होंगे। – user1032613

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