2010-11-14 14 views
7

मुझे डेल्फी कोड से कुछ जावास्क्रिप्ट फ़ंक्शंस निष्पादित करने की आवश्यकता है, लेकिन यह फ़ंक्शन विफल रहता है यदि पृष्ठ Twebbrowser नियंत्रण में लोड नहीं होता है। तो समस्या यह है कि यदि पृष्ठ किसी टैबशेट में स्थित है, जो सक्रिय नहीं है तब तक पृष्ठ लोड नहीं होता है जब तक कि टैबशीट सक्रिय न हो जाए।यह दिखाई देने पर Twebbrowser नियंत्रण में किसी पृष्ठ को लोड करने के लिए कैसे मजबूर करें

प्रश्न यह है कि यह पृष्ठ दिखाई देने पर Twebbrowser नियंत्रण में किसी पृष्ठ को लोड करने के लिए कैसे मजबूर किया जाए।

सिर्फ एक pagecontrol शब्दों में कहें, 2 tabsheets के साथ इस व्यवहार का परीक्षण करने, और दूसरा tabsheet में एक twebbrowser, अब फार्म की OnCreate घटना में इस कोड

WebBrowser1.Navigate('http://stackoverflow.com'); 

अब डाल जब आप अनुप्रयोग चलाने पृष्ठ केवल तभी लोड होता है जब आप दूसरी टैबलेट दृश्यमान बनाते हैं।

अग्रिम धन्यवाद।

+0

संबंधित कहते हैं - http://stackoverflow.com/questions/2070084/delphi-missing-ui-control-on-tab-why-calling-handleneeded-fixes-it –

उत्तर

11

कॉल WebBrowser1.HandleNeeded; इससे पहले कि आप WebBrowser1.Navigate

+0

धन्यवाद बहुत, सही काम करता है। – Salvador

+0

एक ही समस्या होने के बाद यह मिला। महान काम किया, धन्यवाद। –

0

मैं आपके द्वारा प्रलेखित व्यवहार को पुन: उत्पन्न नहीं कर सकता। मैंने आपके निर्देशों का पालन एक पृष्ठ नियंत्रण, दो टैब, वेबब्रोसर दूसरे (अदृश्य) टैब पर किया है।

यह जानने के लिए कि पृष्ठ लोड हो रहा है, मैंने वेबब्रोसर की कुछ घटनाओं को कैप्चर किया है। मुझे लगता है कि onBeforeNavigate, onTitleChange और OnNavigateComplete सभी को दूसरी टैबशीट दृश्यमान किए बिना निकाल दिया जाता है।

उन घटनाओं में से किसी एक के तहत निष्पादित करने के लिए अपना जावास्क्रिप्ट कोड सेट करना आपकी समस्या का समाधान कर सकता है।