Webbrowser Ctrl: Target frame festlegen

27/02/2009 - 01:42 von Hans-J. Ude | Report spam
Ich habe ein single document Programm mit Webbrowser control und würde gerne
alle Links im selben Browser öffnen, egal welches target im Dokument steht.
Nicht ggf. den Internet Explorer hochziehen. Im Moment mache ich das, indem
ich das Dokument manipuliere. Das funktioniert, erscheint mir aber irgendwie
unsauber. Vereinfachte Version:

if (Element.TagName == "A") // Anchor Elememt
{
Element.SetAttribute("target", "_self");
}

Da gibt es doch bestimmt eine spezielle Methode oder irgend ein Flag dafür,
das ich übersehen habe. Weiß das jemand?

TIA,
Hajü
 

Lesen sie die antworten

#1 Frank Dzaebel
27/02/2009 - 09:02 | Warnen spam
Hallo Hans-J.,

Das funktioniert, erscheint mir aber irgendwie unsauber. Vereinfachte
Version: if (Element.TagName == "A") // Anchor Elememt
Element.SetAttribute("target", "_self");
Da gibt es doch bestimmt eine spezielle Methode oder irgend ein Flag
dafür, das ich übersehen habe.



Nein, das "Manipulieren" ist halt unsauber und da sehe
ich nicht viel Möglichkeiten, es ohne Manipulation zu
machen. Es gibt zwar ein: <base href ...>

[SELFHTML: HTML/XHTML / HTML-Kopfdaten / Adressbasis und Zielfensterbasis]
http://de.selfhtml.org/html/kopfdaten/basis.htm

aber dann müssten definierte relative hrefs
im target benutzt werden und es könnten ggf. andere
Seiteneffekte entstehen. Jede Manipulation ist
letztlich "unsauber".

Ansonsten gàbe es zum Beispiel das HTMLAnchorElement,
mit dem man die "Abfrage" ggf. sauberer machen kann:

[MSHTML ohne WebBrowser als Parser benutzen]
http://dzaebel.net/MshtmlParser.htm

(obwohl der Code im angegebenen Artikel auch
für Deine Zwecke unnötig kompliziert ist)


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen