2010-11-20 15 views
7

मैं क्रोम एक्सटेंशन बना रहा हूं जो किसी बिंदु पर वर्तमान पृष्ठ भाषा निर्धारित करना चाहिए। ऐसा करने के लिए, मेरी योजना पृष्ठ की टेक्स्ट सामग्री (या कम से कम इसका एक हिस्सा) निकालना है और इसे अनुवाद एपीआई में पास करना है। हालांकि मुझे दस्तावेज के सभी textNode एस प्राप्त करने के लिए कोई स्ट्रेट आगे नहीं मिला।पूरे दस्तावेज़ की टेक्स्ट सामग्री कैसे प्राप्त करें?

एक बैकअप योजना है जो $('body').contents() का पुन: विश्लेषण करने के लिए पर्याप्त टेक्स्ट सामग्री है, लेकिन यह थोड़ा सा झटकेदार लगता है। शायद एक बेहतर तरीका है?


नोट: क्रोम एक्सटेंशन api उपयोगकर्ता पेज डोम तक पहुँचने के लिए अपनी स्क्रिप्ट जैसे कि वह यह का हिस्सा था अनुमति देता है।

+0

वहाँ आप क्रोम एक्सटेंशन विकास में अजगर निष्पादनयोग्य इस्तेमाल कर सकते हैं तरीका है? यदि ऐसा है तो आप इसे प्राप्त करने के लिए 'sgmllib' मॉड्यूल से' SGMLParser' का उपयोग कर सकते हैं! यह सुनिश्चित नहीं है कि जेएस –

+0

का उपयोग करके इसे कैसे करें पृष्ठ के पूर्ण HTML के साथ आप क्या करते हैं ??? – kobe

उत्तर

8

का उपयोग jQuery text() method

$('body').text() 
+0

अंधेरे से स्पष्ट;) – artemave

+0

नाइटपिक के लिए खेद है, लेकिन आप चाहते हैं: '$ ('body')। टेक्स्ट()' – szeryf

+0

@szeryf हाँ आपका अधिकार है। मेरी माफी और अच्छी पकड़! –

10

jQuery के बिना, बस के रूप में आसान: document.body.innerText;

+6

आईई के लिए आंतरिक टेक्स्ट, document.body.text सामग्री अन्यथा – kennebec

+0

पीपीके के मुताबिक, दोनों कम या ज्यादा क्रॉस-ब्राउजर (फ़ायरफ़ॉक्स में आंतरिक टेक्स्ट अनुपस्थित हैं, आईई में टेक्स्टकंटेंट) http://www.quirksmode.org/dom/w3c_html। एचटीएमएल – pawel

+2

हालांकि वे अलग हैं: http://stackoverflow.com/questions/1359469/innertext-works-in-ie-but-not-in-firefox/1359822#1359822 –

10

जावास्क्रिप्ट:

document.body.textContent 
संबंधित मुद्दे