2010-11-10 20 views
5

WebBrowser kullanarak IFRAME html kodunu nasıl okuyabilirim?iframe kullanarak HTML kodunu okuyun Webbrowser C#

iframe ile sitem var ve birkaç tıklamadan sonra bu IFRAME içinde HTML KOD'un bir kısmı ile yeni URL açılır. Bunu okumak için bir olasılık var mı? Bu URL'ye Navigasyon() yapmaya çalıştığımda, bu sitenin ana sayfasına yönlendirildim (bu bağlantıyı iki kez açmak mümkün değil).

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

Belki benzer bir şey vardır:

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

bu cevabı http://stackoverflow.com/questions/20013498/webbrowser-iframe-access-causing-unauthorized-access/20494120#20494120 bakın @Kiquenet –

cevap

3

Dene:

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

dize içeriği = webBrowser1.Document.Window.Frames [0]. WindowFrameElement.InnerText; – Luke

+0

Bunu ve görüntülenen içeriği kullandım. Iframe ;-) – Luke

+0

Ah'in URL'sini aldım, üzgünüm, değişken olarak "içerik" demekteydim. HTML kodu yerine (kaynak) iframe'imin URL'sini aldım. Yinede teşekkürler! – Luke

1

Ayrıca mshtml türleri aracılığıyla çeşitli öğeleri elde edebilir:

bir başvuru ayarla " Microsoft HTML Nesne Kitaplığı "COM referansları altında.

ayarlayın using ifadesi:

using mshtml; 

Sonra kaynağını kapmak için mshtml API içine dokunun:

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

"çerçeve" o satırdan sonra boş değil ise, bir yeri vardır kullanımınız için asılı olan öğeler.

+0

Deniyorum ama hata alıyorum UnauthorizedAccessException – Kiquenet

+0

Bu, siteler arası komut dosyası saldırılarını engellemek için çerçeveler arasında erişimi kısıtlayan kısıtlamalar nedeniyle. – Boydski

1

deneyin:

dize içeriği = webBrowser1.Document.Window.Frames [0]

.Document.Body.InnerText fazla olduğu bir iç çerçeve ve .NET içerebilir
+1

Denedim ama UnauthorizedAccessException hatası alıyorum – Kiquenet

0

gezgini kontrol penceresi ve böylece çerçeve toplama destekler belki ihtiyacınız iframe kaplardan gereken tüm alabilirsiniz küçük bir ayarlama ile,

// 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; 
} 

Bu şekilde: neden böyle bir şey kullanmayın.

İlgili konular