Laden...

webbrowser - htmlcode abfangen

Erstellt von B3nj vor 16 Jahren Letzter Beitrag vor 16 Jahren 998 Views
B3nj Themenstarter:in
242 Beiträge seit 2006
vor 16 Jahren
webbrowser - htmlcode abfangen

hallo,

weiss hier jemand welches event ich auswählen muss um den html-code beim webbrowser abzufangen, damit ich doch noch alle <img>-tags rausnehmen kann, udn dass dieser neue code dann angezeigt wird?

oder gibt es sonst eine möglichkeit, dass die Bilder gar nicht erst geladen werden?

mfG b3nJ

J
3.331 Beiträge seit 2006
vor 16 Jahren

Hallo,

versuche einmal das WebBrowser.DocumentCompleted-Ereignis. Allerdings verweist die WebBrowserDocumentCompletedEventArgs-Klasse nur auf die Url, nicht direkt auf das Dokument. Aber laut Doku solltest Du in diesem Ereignis Zugriff auf den Dokument-Text haben. Jürgen

B3nj Themenstarter:in
242 Beiträge seit 2006
vor 16 Jahren

Ja da bin ich auch schon drüber gestolpert, nur leider startet das event nach dme die seite geladen wird...
ich suche ein event, dass dann aufgerufen wird, wenn der webbrowser den quellcode vom html-dokument geladen hat, ihn aber noch nicht dargestellt hat, damit ich alle bild-tags rausnehmen kann und die seite shclussendlich shcneller geladen wird.

bei deinem event wird die seite geladen und erst dann kann ich die bilder herausnehmen, daher ist das event für meine situation nicht ganz günstig.

aber danke für die schnelle antwort 🙂

mfG b3nJ

B
1.529 Beiträge seit 2006
vor 16 Jahren

Fang _WebBrowser.Navigating_ab, cancel das Event, lade die Seite von Hand, entferne alle ungewollten IMG-Tags (oder besser: setze die Source auf eine 1x1 Pixel große Grafik und blähe mittels "width" und "height" auf die Originalgröße auf, um das Layout zu erhalten) und weise den Code an WebBrowser.DocumentText zu.

Allerdings weiß ich nicht, wie die ganzen Events auf Frames reagieren, die ja in verschiedenen Dateien vorliegen...

B3nj Themenstarter:in
242 Beiträge seit 2006
vor 16 Jahren

hallo,

leider habe ich deine erklärung nicht soo gut evrstanden oder halt shclecht realisiert.
ich habe aber dank dir selbst noch wa szusammengebastelt:


bool navigate;

private void button1_Click(object sender, EventArgs e)
{
navigate = true;
webBrowser1.Navigate(textBox1.Text); //Ein Link
}

private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
if (navigate)
{
webBrowser1.Stop();
navigate = false;
webBrowser1.DocumentText = webBrowser1.DocumentText.Replace("<img", "//";); //Ist keine gute Lösung, ich habe sie auch nur benutzt um das ganze zu testen
}
}

seltsamerweise ist, wenn ich dne text abfange, die länge vom webBrowser1.DocumentText immer maximal 4096, aber wieso?
bei kleinen seiten wie google geht das ja noch, aber wenn man eine grössere seite mit sehr viel mehr als 4096 zeichen lädt (bsp: www.rheinportal.ch/chat) dann steht man vor ner weissen seite weil nur die ersten 4096 zeichen geladen werdenX(

naja^^

mfG b3nJ