你可以在WebBrowser的OnStatusTextChange事件中来判断:
procedure TMainForm.WebBrowser1StatusTextChange(Sender: TObject;
const Text: WideString);
function GetSystemDir: string;
var sysDir: array[0..250] of char;
begin
GetSystemDirectory(sysDir, 250);
Result := StrPas(sysDir);
end;
begin
if Pos('RES://'+Uppercase(GetSystemDir)+'/SHDOCLC.DLL', Uppercase(text)) > 0 then
begin
WebBrowser1.Stop;
ShowMessage('浏览器浏览失败!');
//这样判断不一定准确,你要先记录原来的URL,然后在这里和现在的URL相比,进行进一步的判断。
end;
end;