दिलचस्प पोस्ट
क्रोम एक्सटेंशन – जीमेल के मूल संदेश को पुनः प्राप्त करना HTML <textarea> के लिए डिफ़ॉल्ट मान कैसे जोड़ें? git, msysgit, लहजे, यूटीएफ -8, निश्चित जवाब मैं "बदलाव + एंट" का कैसे पता लगा सकता हूं और टेडटेरा में एक नई लाइन उत्पन्न कर सकता हूं? उनके वर्णमाला क्रम से तार की तुलना करना डब्लूएसडीएल का उपयोग कैसे करें मैं VBA में FileSystemObject का उपयोग कैसे करूं? अजगर सबप्रोसेस। एक थ्रेड से पॉपिन फास्ट सटीक बिग फिक्सरल अजगर के सबप्रोसेक के लिए एक अच्छा समकक्ष क्या है। चेकमार्क stdout की सामग्री देता है? एक संग्रहीत प्रक्रिया क्या है? सफारी, आईफ़ोन और आईपैड में एचटीएमएल 5 वीडियो टैग काम नहीं कर रहा है खोज के लिए ASP.NET MVC कस्टम रूटिंग सिस्टम के विकल्प। ASP.NET के साथ उपयोग के लिए छोड़ना? क्या जावा के जेडीके में एक समवर्ती सूची है?

वेबब्राउज़र पूर्ण पृष्ठ लोड हो रहा है

जब System.Windows.Forms.WebBrowser नियंत्रण लोड हो रहा है, तो मुझे कैसे पता लगा सकता है?

मैंने नेविगेट और दस्तावेज सम्पूर्ण घटनाओं का उपयोग करने की कोशिश की लेकिन दस्तावेज़ लदान के दौरान उनमें से दोनों को उठाया गया था!

वेब के समाधान से एकत्रित समाधान "वेबब्राउज़र पूर्ण पृष्ठ लोड हो रहा है"

मुझे लगता है कि DocumentCompleted सम्पूर्ण घटना सभी बच्चे दस्तावेजों के लिए निकाल दी जाएगी जो कि भरी हुई हैं (जैसे कि जेएस और सीएसएस, उदाहरण के लिए) आप DocumentCompleted में WebBrowserDocumentCompletedEventArgs को देख सकते हैं और यूआरएल प्रॉपर्टी देख सकते हैं और इसकी तुलना मुख्य पृष्ठ के यूआरएल के साथ कर सकते हैं।

मैंने निम्नलिखित किया:

 void BrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (e.Url.AbsolutePath != (sender as WebBrowser).Url.AbsolutePath) return; //The page is finished loading } 

भरी हुई आखिरी पृष्ठ को नेविगेट किया जाता है, इसलिए इसे कार्य करना चाहिए।

यहां से

निम्नलिखित काम करना चाहिए

 private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { //Check if page is fully loaded or not if (this.webBrowser1.ReadyState != WebBrowserReadyState.Complete) return; else //Action to be taken on page loading completion } 

नोट करें कि DocumentCompleted में यूआरएल सर्वर स्थानांतरण या यूआरएल सामान्यीकरण के कारण यूआरएल पर नज़र रखने से भिन्न हो सकता है (जैसे आपने http://www.microsoft.com पर नेविगेट किया है और http://www.microsoft.com को documentcomplete में मिला है)

फ़्रेम वाले पृष्ठों में, यह ईवेंट लोड होने के बाद एक बार पूरा हो जाता है। कई फ़्रेम वाले पृष्ठों में, यह ईवेंट प्रत्येक नेविगेटिंग फ़्रेम के लिए आग लगाता है (नोट फ़्रेम के अंदर नोट नेविगेशन समर्थित है, उदाहरण के लिए किसी फ़्रेम में एक लिंक पर क्लिक करने से फ्रेम को दूसरे पृष्ठ पर नेविगेट किया जा सकता है)। सर्वोच्च स्तर की नेविगेटिंग फ़्रेम, जो शीर्ष स्तर के ब्राउज़र हो सकता है या नहीं, अंतिम DocumentComplete ईवेंट को निकाल देता है।

देशी कोड में आप यह निर्धारित करने के लिए DocumentComplete ईवेंट के प्रेषक की तुलना करेंगे कि क्या ईवेंट नेविगेशन में अंतिम ईवेंट है या नहीं । हालांकि, विंडोज़ प्रपत्र में प्रेषक पैरामीटर WebBrowserDocumentCompletedEventArgs द्वारा लिपटे नहीं है। आप या तो पैरामीटर के मूल्य प्राप्त करने के लिए मूल घटना को सिंक कर सकते हैं, या यह देखने के लिए कि क्या सभी फ़्रेम तैयार राज्य में है, ब्राउज़र में दस्तावेज़ या फ्रेम दस्तावेज़ों की तैयार की गई संपत्ति की जांच करें।

तैयार करने की विधि के साथ एक प्रसारक है, जैसे कि एक डाउनलोड प्रबंधक मौजूद है और नेविगेशन एक डाउनलोड करने योग्य फ़ाइल है, नेविगेशन को डाउनलोड प्रबंधक द्वारा रद्द किया जा सकता है और तैयार स्थिति पूरी नहीं होगी।

मेरे पास एक से अधिक DocumentCompleted घटनाओं का एक ही मुद्दा था और ऊपर दिए गए सभी सुझावों का प्रयास किया। अंत में, ऐसा लगता है कि मेरे मामले में न तो IsBusy संपत्ति सही है, न ही Url संपत्ति है, लेकिन ReadyState जरूरत है जो मुझे चाहिए, क्योंकि कई फ़्रेमों को लोड करते समय इसकी स्थिति 'इंटरैक्टिव' होती है और इसे लोड करने के बाद ही स्थिति 'पूर्ण' हो जाती है आखरी वाला। इस प्रकार, मुझे पता है कि जब पृष्ठ अपने सभी घटकों के साथ पूरी तरह भरी हुई है

मुझे आशा है कि यह दूसरों को भी मदद कर सकता है 🙂

यह बाहरी जावास्क्रिप्ट या सीएसएस फ़ाइलों के लिए DocumentCompleted / Navigated ईवेंट को ट्रिगर नहीं करता है, लेकिन यह iframes के लिए होगा। जैसा कि पीके कहते हैं, वेबब्राउज़र डॉक्यूमेंट कॉम्पलेटेड ईवेंटअर्ज। यूआरएल प्रॉपर्टी की तुलना करें (मेरे पास अभी तक कोई टिप्पणी करने के लिए कर्मा नहीं है)।

यदि आप WPF का उपयोग कर रहे हैं तो एक LoadCompleted ईवेंट है।

यदि यह Windows.Forms , DocumentCompleted Windows.Forms इवेंट सही होना चाहिए। यदि आपके द्वारा लोड किए गए पेज में फ़्रेम होते हैं, तो आपका WebBrowser कंट्रोल प्रत्येक फ्रेम के लिए DocumentCompleted ईवेंट को आग जाएगा (अधिक विवरण के लिए यहां देखें)। मैं IsBusy संपत्ति की जांच हर बार जब घटना निकाल दी जाती है और अगर यह गलत है तो आपका पृष्ठ पूरी तरह से लोड हो रहा है।

एकाधिक नेस्टेड फ़्रेम वाले एक पृष्ठ के साथ दस्तावेज़पूर्ण योग का उपयोग करना मेरे लिए काम नहीं करता था

मैंने इस तरह WebBrowser नियंत्रण डालने के लिए Interop.SHDocVW पुस्तकालय का उपयोग किया था:

 public class webControlWrapper { private bool _complete; private WebBrowser _webBrowserControl; public webControlWrapper(WebBrowser webBrowserControl) { _webBrowserControl = webBrowserControl; } public void NavigateAndWaitForComplete(string url) { _complete = false; _webBrowserControl.Navigate(url); var webBrowser = (SHDocVw.WebBrowser) _webBrowserControl.ActiveXInstance; if (webBrowser != null) webBrowser.DocumentComplete += WebControl_DocumentComplete; //Wait until page is complete while (!_complete) { Application.DoEvents(); } } private void WebControl_DocumentComplete(object pDisp, ref object URL) { // Test if it's the main frame who called the event. if (pDisp == _webBrowserControl.ActiveXInstance) _complete = true; } 

यह कोड मेरे लिए काम करता है, जब वेब ब्रायसर नियंत्रण नॅविगेट (यूआरएल) पद्धति का उपयोग करके एक निर्धारित यूआरएल पर नेविगेट किया जाता है, लेकिन मुझे पता नहीं है कि HTML एलेमेंट। इनकॉक्म मेम्बर ("क्लिक") का उपयोग करते समय एक HTML बटन को क्लिक करने पर पेज को कैसे नियंत्रित किया जाए।

आप ईवेंट प्रगति बदल सकते हैं; पिछली बार इसे उठाया जाएगा इंगित करेगा कि दस्तावेज़ पूरी तरह से गाया गया है:

 this.webBrowser.ProgressChanged += new WebBrowserProgressChangedEventHandler(webBrowser_ProgressChanged);