2010-11-10 11 views
5

का उपयोग कर आईफ़्रेम से HTML कोड पढ़ें WebBrowser का उपयोग करके IFRAME HTML कोड को कैसे पढ़ा जाए?वेबब्रोसर सी #

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

Uri IFRAME_URL = webBrowser1.Document.Window.Frames[0].Url; 

हो सकता है कि वहाँ के लिए कुछ इसी तरह है:

Uri IFRAME_URL = webBrowser1.Document.Window.Frames[0]. ... DOCUMENTTEXT; 
+1

@Kiquenet इस जवाब http://stackoverflow.com/questions/20013498/webbrowser-iframe-access-causing-unauthorized-access/20494120#20494120 देख –

उत्तर

3

प्रयास करें:

string content = webBrowser1.Document.Window.Frames[0].WindowFrameElement.InnerText; 
+0

स्ट्रिंग सामग्री = webBrowser1.Document.Window.Frames [0]। WindowFrameElement.InnerText; – Luke

+0

मैंने इसका इस्तेमाल किया और सामग्री प्रदर्शित की। मुझे आईफ्रेम का यूआरएल मिला ;-) – Luke

+0

आह, माफ करना मेरा मतलब "सामग्री" चर के रूप में था। एचटीएमएल कोड (स्रोत) के बजाय मुझे अपने आईफ्रेम का यूआरएल मिला। लेकिन फिर भी धन्यवाद! – Luke

1

तुम भी mshtml प्रकार के माध्यम से विभिन्न मदों प्राप्त कर सकते हैं:

के लिए एक संदर्भ में सेट करें " COM संदर्भों के तहत माइक्रोसॉफ्ट एचटीएमएल ऑब्जेक्ट लाइब्रेरी "

अपने का उपयोग कर बयान सेट करें:

using mshtml; 

तब स्रोत छीनने के लिए mshtml एपीआई का दोहन:

HTMLFrameBase frame = yourWebBrowserControl.Document.GetElementById("yourFrameId").DomElement as HTMLFrameBase; 

हैं "फ्रेम" है कि रेखा के बाद रिक्त नहीं है, यह एक बहुत है आपके उपयोग के लिए इसे लटकाने वाली वस्तुओं का।

+0

मैं इसे आज़माता हूं लेकिन मुझे त्रुटि मिलती है अनधिकृत एक्सेस अपवाद – Kiquenet

+0

यह क्रॉस-साइट स्क्रिप्टिंग हमलों को रोकने के लिए फ्रेम के बीच पहुंच प्रतिबंधित करने की बाधाओं के कारण है। – Boydski

1

कोशिश:

स्ट्रिंग सामग्री = webBrowser1.Document.Window.Frames [0]

.Document.Body.InnerText
+1

मैं इसे आज़माता हूं लेकिन मुझे त्रुटि मिलती है अनधिकृत एक्सेस अपवाद – Kiquenet

0

एक WebBrowser नियंत्रण खिड़की अधिक है कि एक iframe और .net शामिल कर सकते हैं फ्रेम संग्रह इतना समर्थन करता है क्यों कुछ इस तरह का प्रयोग नहीं:

// Setup a string variable... 
string html = string.Empty; 

// webBrowser1.Document.Window.Frames gets a collection of iframes contained in the current document... 
// HTMLWindow is the iterator for the Collection... 
foreach (HtmlWindow frame in webBrowser1.Document.Window.Frames) 
{ 
html += frame.Document.Body.OuterHtml; 
} 

इस तरह, शायद एक छोटे से समायोजन आप सभी आप iframe कंटेनर आप की जरूरत से जरूरत प्राप्त कर सकते हैं के साथ।

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