Entwickler-Ecke
ASP.NET und Web - Hyperlink auf Textmarke
dlt - Di 09.11.10 11:02
Titel: Hyperlink auf Textmarke
Hallo Forum!
wie kann ich unter C# einen hyperlink auf eine Textmarke erstellen?
mit:
C#-Quelltext
1: 2:
| string s = System.Windows.Forms.Application.StartupPath + "\\Hilfe\\hilfe.html#Fehlermeldungen"; System.Diagnostics.Process.Start(s); |
funktioniert es leider nicht auf die vorhandene Textmarke"Fehlermeldungen" zu springen,
hab leider nichts passendes gefunden...
Danke!!
Thomas
Trashkid2000 - Di 09.11.10 17:18
Hallo,
also, für den Internet-Explorer (getestet mit IE8) klappt es auf diese Art:
C#-Quelltext
1:
| Process.Start("iexplore.exe", "file://C:/Temp/anker.htm#kapitel2"); |
Aber der Firefox schluckt das nicht so richtig. Da wird der Anker auch nicht mitgegeben!?
Wie es sich mit anderen Browsern verhält, kann ich nicht sagen.
LG, Marko
Yogu - Di 09.11.10 18:45
dlt hat folgendes geschrieben : |
C#-Quelltext 1: 2:
| string s = System.Windows.Forms.Application.StartupPath + "\\Hilfe\\hilfe.html#Fehlermeldungen"; System.Diagnostics.Process.Start(s); | |
Woher soll Windows denn wissen, dass der Teil nach der Raute nicht mehr zum Dateinamen gehört? Es ist ja schließlich auch erlaubt, eine Datei namens 2hilfe.html#Fehlermeldungen" zu erstellen. Das heißt, dass Windows nach der Datei inklusive Hash sucht und daher natürlich nichts findet.
Trashkid2000 hat folgendes geschrieben : |
Aber der Firefox schluckt das nicht so richtig. Da wird der Anker auch nicht mitgegeben!? |
Firefox (4.0b6) macht's genauso wie Windows: Es wird nach der Datei inklusive dem Teil nach der Raute gesucht und nichts gefunden.
So, und das eigentliche Problem ist, dass du einen Slash vergessen hast,
Trashkid2000. Dann funktioniert lustigerweise alles wieder:
C#-Quelltext
1:
| Process.Start("iexplore.exe", "file:///C:/Temp/anker.htm#kapitel2"); |
dlt - Di 09.11.10 22:46
Danke!
D.h. es ist nicht möglich?
was mich ziemlich irritiert ist die Tatsache dass der Explorer richtig startet
die Adresse mit ...#Textmerke im Adressfenster erscheint
aber das Dokument nicht auf der Textmarke steht sondern knapp unter dem Anfang.
Wenn ich im Explorer anschliessend auf refresh klicke steht das Dokument auf der richtigen Stelle!!
hat irgendjemand einen Lösungsvorschlag?
das dedizierte angeben des WIN-Explorers im process-befehl wie von euch beschrieben macht keinen unterschied
Danke
Thomas
Yogu - Mi 10.11.10 21:20
Yogu hat folgendes geschrieben : |
Dann funktioniert lustigerweise alles wieder: |
dlt hat folgendes geschrieben : |
D.h. es ist nicht möglich? |
Doch...
Ich hab nochmal ein bisschen rumgespielt und im Internet gesucht, und siehe da - ich bin über Google wieder in der Entwickler-Ecke gelandet, und zwar in
Shellexecute unter Windows 7 - URL mit Sprunganker [
http://www.delphi-forum.de/topic_Shellexecute+unter+Windows+7++URL+mit+Sprunganker_100321.html]. Du kannst den Code dort einfach in C# umschreiben, das dürfte kein Problem sein.
Wenn Windows 7 nicht so wichtig ist geht es viel einfacher:
C#-Quelltext
1:
| Process.Start("\"file:///D|/test.html#h2\""); |
Öffnet die Datei im Standardbrowser. Getestet mit Firefox, Opera und Safari als Standardbrowser, alle drei funktionieren. Der Internet Explorer schafft's aber leider aus irgendeinem Grund nicht und zeigt den Anker nichtmal in der Adressleiste an. Wenn der Internet Explorer also wichtig ist, musst du wohl auf die komplziertere Version aus dem Delphi-Forum zurückgreifen.
dlt - Do 11.11.10 21:54
Danke! werds versuchen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!