2012-04-13 19 views
22

मैं इसके साथ बातचीत करने के बाद HTML पृष्ठ की स्थिति को सहेजने में सक्षम होना चाहता हूं।जावास्क्रिप्ट-प्रस्तुत पृष्ठ (इसके साथ बातचीत करने के बाद) का HTML प्राप्त करें

कहें कि मैं एक चेकबॉक्स पर क्लिक करता हूं, या जावास्क्रिप्ट विभिन्न तत्वों के मान सेट करता है।

मैं "जावास्क्रिप्ट-प्रस्तुत" पृष्ठ को कैसे सहेज सकता हूं?

धन्यवाद।

उत्तर

14

कि क्या करना चाहिए और सभी पेज सिर्फ शरीर

console.log(document.getElementsByTagName('html')[0].innerHTML); 
+1

यह शायद बेहतर है, लेकिन फिर से, समस्या इसे सहेज रही है। इसे एक बुकमार्कलेट नंबर की आवश्यकता हो सकती है? – user420667

+0

निर्भर करता है कि आप इसे कहां से सहेजना चाहते हैं, आप इसे एक चर के लिए असाइन कर सकते हैं, AJAX कॉल कर सकते हैं और उसे डेटाबेस में या फ़ाइल में सहेज सकते हैं। – GillesC

+1

लेकिन सभी को मुझे पृष्ठ में अपनी स्क्रिप्ट इंजेक्शन की आवश्यकता है, है ना? – user420667

3

document.body.innerHTML आपको वर्तमान दस्तावेज़ निकाय का HTML प्रतिनिधित्व प्राप्त होगा।

इसमें आवश्यक रूप से डीओएम ऑब्जेक्ट्स की सभी आंतरिक स्थिति शामिल नहीं होगी क्योंकि HTML में ऑब्जेक्ट्स की प्रारंभिक डिफ़ॉल्ट स्थिति होती है, यह आवश्यक नहीं है कि वे राज्य को बदल दें। गारंटी देने का एकमात्र तरीका आपको वह राज्य प्राप्त करना है, जिस राज्य को आप सहेजना चाहते हैं और वास्तव में प्रोग्रामेटिक रूप से उस राज्य को प्राप्त करना चाहते हैं।

इसे सहेजने के बारे में आपके प्रश्न के हिस्से का उत्तर देने के लिए, आपको यह समझने की आवश्यकता होगी कि आप वास्तव में किस समस्या को हल करने की कोशिश कर रहे हैं।

+0

शांत ... लेकिन फिर मुझे यह सही बचाने के लिए एक तरीका चाहिए? तो क्या मुझे सिर्फ एक बुकमार्कलेट बनाना चाहिए जो क्लिपबोर्ड पर document.body.innerHTML कॉपी करता है? – user420667

+0

@ user420667 - आपको उस समस्या के बारे में और अधिक वर्णन करना होगा जो आप वास्तव में हल करने के लिए हल करने की कोशिश कर रहे हैं। – jfriend00

+0

समस्या: मैं एक वेबपेज पर जाता हूं, मैं इसे सहेजना चाहता हूं और यह राज्य है) इसके बाद मैंने बातचीत की है। – user420667

17

क्रोम (और जाहिरा तौर फ़ायरफ़ॉक्स) में हड़पने जाएगा, वहाँ एक विशेष प्रतिलिपि() विधि है कि क्लिपबोर्ड को प्रदान की गई सामग्री की प्रतिलिपि नहीं है। फिर आप इसे अपने पसंदीदा टेक्स्ट एडिटर में पेस्ट करके जो भी चाहें कर सकते हैं।

https://developers.google.com/chrome-developer-tools/docs/commandline-api#copyobject

कंसोल उदाहरण:

प्रतिलिपि (document.body.innerHTML);

नोट: मैंने देखा कि विधि चलाने के बाद क्रोम रिपोर्ट अपरिभाषित है, हालांकि, यह सही ढंग से निष्पादित प्रतीत होता है और सही सामग्री क्लिपबोर्ड में है।

+1

शानदार! मैं इसके लिए उम्र खोज रहा हूं। कोई विचार नहीं है कि इसे उच्च रेट क्यों नहीं किया गया है - यह वही है जो आवश्यक है। धन्यवाद! – digitaltoast

+1

आपने मेरी जिंदगी बचाई! – tamtom