//截获打开网页的事件,利用URL来区别处理(URL的格式可以自己扩充)~~ procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); begin Cancel := True; //取消打开 if URL = 'http://新建' then begin { TODO : 新建 } end else if URL = 'http://保存' then begin { TODO : 保存 } end else if URL = 'http://载入' then begin { TODO : 载入 } end else Cancel := False; end;
begin
winexec('calc.exe',SW_SHOWNORMAL);
end;
{
var status=window.status;//备份原有状态栏文本
window.status='#'+cmd;//触发OnStatusChanged事件
window.status=status;//恢复原有状态栏文本
}
你在WebBrowser的OnStatusChanged事件里分析传入的Text,如果不是#开头的,则当作普通状态栏文本来刷新状态栏,否则则根据Text来做你要做的事情
例如
<a href="javascript:ExecuteCmd('link_OnClick')">点击这里</a>
<input type="button" onclick="ExecuteCmd('button_OnClick')">
并使用IInternetSession.RegisterNameSpace()注册.
procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
Cancel := True; //取消打开
if URL = 'http://新建' then
begin
{ TODO : 新建 }
end else if URL = 'http://保存' then
begin
{ TODO : 保存 }
end else if URL = 'http://载入' then
begin
{ TODO : 载入 }
end else Cancel := False;
end;