2013-10-03 5 views
16

प्राप्त करें मैं अपने क्रोम एक्सटेंशन में चयनित टेक्स्ट प्राप्त करने का एक तरीका ढूंढ रहा हूं।क्रोम एक्सटेंशन चयनित टेक्स्ट

मैं पूर्व करना चाहता हूं। फेसबुक फीड में एक टेक्स्ट का चयन करें और जब मैं अपने आइकन पर क्लिक करता हूं तो यह इसे प्राप्त करेगा और मेरे एक्सटेंशन में चयनित टेक्स्ट दिखाएगा।

मैं इस अब तक मिल गया:

chrome.tabs.executeScript(null, 
    {code:"alert(window.getSelection().toString());"}) 

यह चयनित पाठ हो जाता है और क्रोम में एक संदेश के साथ यह सूचना देते हैं। हालांकि मैं इसे अपने एचटीएमएल पॉपअप में दिखाना चाहता हूं। मैं इसे इस तरह लिखना चाहता हूं:

document.getElementById("output").value = "Selected text here(but how)" 

सहायता चाहिए! और मुझे पता है कि इसके बारे में अन्य सवाल है, लेकिन उन्होंने मुझे बिल्कुल वही नहीं दिया जो मुझे चाहिए ..

+0

यह है कि मैं क्या साथ समाप्त हो गया है आउटपुट ")। मूल्य = परिणाम; } काम करता है! –

उत्तर

26

आप पिछले अभिव्यक्ति एक में मार डाला कोड द्वारा मूल्यांकन का उपयोग कर सकते उपयोग कर सकते हैं कॉलबैक फ़ंक्शन:

01 , समारोह (परिणाम) { document.getElementById (";: {"। Window.getSelection() toString() "कोड} chrome.tabs.executeScript (शून्य,:
+0

यह समान-मूल फ्रेम और अलग-अलग मूल फ्रेम में काम नहीं करता है। इसके अलावा यह टेक्स्ट को वास्तव में लौटाता है जो वास्तव में नहीं चुना जाता है क्योंकि अब विभिन्न फ्रेम में फ़ोकस करता है। यह इनपुट फ़ील्ड में भी काम नहीं करता है लेकिन यह कोई समस्या नहीं है: 'कोड \t el = activeWindow.document.activeElement दें; \t अगर (isTextElem (एल)) { \t \t (! एल && el.selectionStart में 'selectionstart' == el.selectionEnd) { \t \t \t वापसी el.value.substring अगर (el.selectionStart, el.selectionEnd); \t \t} \t} ' – vitaliydev

2

आप Extensions Messaging का उपयोग कर ऐसा कर सकते हैं। असल में, आपका "पृष्ठभूमि पृष्ठ" आपकी सेवा के लिए अनुरोध भेज देगा। उदाहरण के लिए, मान लीजिए कि आपके पास "पॉपअप" है और एक बार जब आप उस पर क्लिक करेंगे, तो यह एक "Google खोज" करेगा जो आपकी सेवा है।

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) { 
    if (request.method == "getSelection") 
     sendResponse({data: window.getSelection().toString()}); 
    else 
     sendResponse({}); // snub them. 
}); 

कुछ संदर्भ

1) Creating a chrome extension which takes highlighted text on the page and inserts it into a textarea in popup.html

या आप इस प्लगइन

2) https://chrome.google.com/webstore/detail/view-selection-source/fbhgckgfljgjkkfngcoeajbgndkeoaaj

+0

यह मेरे एचटीएमएल दस्तावेज़ को भेज नहीं देगा? –

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