... inzwischen habe ich es selber heraus gefunden....
bei einem Klick auf einen Link, der auf eine Textmarke innerhalb des
HTML-Dokumentes verweist, setzt sich die "Sprungmarke" aus
URL + Textmarke zusammen.
Da ich die Seite ja nicht per navigate sondern per write befüllt habe, steht in WebBrowser.LocationURL "about
:blank" drin.
Beim Klick auf einen Link wird dann "about
:blank#textmarke" daraus und damit kann TWebBrowser nix anfangen ...
So kann man den "Sprung" selber durchführen
Delphi-Quellcode:
procedure TFormSrcView.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch;
var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant;
var Cancel: WordBool);
var
anchor : OleVariant;
myURL : widestring;
i : Integer;
begin
myURL := StringReplace(
URL, '
about:blank','
',[rfIgnoreCase]);
// Url bereinigen
myURL := StringReplace(myURL, '
#','
',[rfIgnoreCase]);
for I := 0
to WebBrowser1.OleObject.Document.anchors.Length - 1
do
begin
anchor := WebBrowser1.OleObject.Document.anchors.Item(I);
if anchor.
name = myUrl
then
begin
anchor.scrollIntoView(true);
// WebBrowser scrollen ...
cancel := true;
exit;
end;
end;
cancel := true;
end;
bye