This is a bit of a treasure, but it works in my tests using the standard TWebBrowser component.
I did an override of the F5 key in the form OnKeyUp. By KeyPreviewsetting the form property to True, you can invoke your own update. Since the TWebBrowser.Refresh method does not raise any navigation event (as you said in your question), I myself trigger the TWebBrowser.Navigate event, which fires events.
URL-, , , . , BeforeNavigate2 URL . . , F5 ( "", ), simpy URL-. OnBeforeNavigate2, OnNavigateComplete2 OnDocumentComplete , - IE.
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
Edit1.Text := URL;
end;
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_F5) then
begin
WebBrowser1.Navigate(Edit1.Text);
end;
end;