5 Stimmen

Lesen Sie den HTML-Code aus dem iframe mithilfe von Webbrowser C#

Wie liest man IFRAME html code mit WebBrowser?

Ich habe eine Seite mit iframe, und nach ein paar Klicks öffnet sich eine neue URL innerhalb dieses IFRAME mit einem Teil des HTML-CODES. Gibt es eine Möglichkeit, dies zu lesen? Wenn ich versuche, zu dieser URL zu navigieren, werde ich zur Hauptseite dieser Seite umgeleitet (es ist nicht möglich, diesen Link zweimal zu öffnen).

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

Vielleicht gibt es etwas Ähnliches wie:

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

1 Stimmen

@Kiquenet sehen Sie diese Antwort stackoverflow.com/questions/20013498/…

4voto

Versuch es:

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

0 Stimmen

String content = webBrowser1.Document.Window.Frames[0].WindowFrameElement.Inn‌​erText;

0 Stimmen

Ich habe dies verwendet und den Inhalt angezeigt. Ich habe die URL des Iframes erhalten ;-)

0 Stimmen

Ah, Entschuldigung, ich meinte "content" als Variable. Anstatt des HTML-Codes (Quelle) habe ich die URL meines Iframes erhalten. Aber trotzdem danke!

1voto

TheHolyTerrah Punkte 2879

Sie können auch verschiedene Elemente über mshtml-Typen erwerben:

Setzen Sie eine Referenz auf die "Microsoft HTML Object Library" unter COM-Verweise.

Setzen Sie Ihre Verwendungsanweisung:

using mshtml;

Greifen Sie dann auf die mshtml-API zu, um die Quelle zu schnappen:

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

Wenn "frame" nach dieser Zeile nicht null ist, hat es viele Elemente, die Sie verwenden können.

0 Stimmen

Das liegt an Beschränkungen, die den Zugriff zwischen Frames einschränken, um Cross-Site-Scripting-Angriffe zu umgehen.

1voto

o17t H1H' S'k Punkte 2184

Versuchen Sie es:

string Inhalt = webBrowser1.Document.Window.Frames[0].Document.Body.InnerText

0voto

Rusty Nail Punkte 2685

Ein WebBrowser Control-Fenster kann mehr als ein iframe enthalten und .NET unterstützt die Frame-Sammlung, warum also nicht etwas wie dies verwenden:

// Ein String-Variable einrichten...
string html = string.Empty;

// webBrowser1.Document.Window.Frames erhält eine Sammlung von iframes, die im aktuellen Dokument enthalten sind...
// HTMLWindow ist der Iterator für die Collection...
foreach (HtmlWindow frame in webBrowser1.Document.Window.Frames)
{
html += frame.Document.Body.OuterHtml;
}

Auf diese Weise können Sie vielleicht mit ein wenig Anpassung alles erhalten, was Sie von den benötigten iframe-Containern benötigen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X