最近我正在做一个多媒体演示程序,需要用到一个webbrowser控件来显示程序内容并与应用程序"沟通",比如说:互发消息、交换变量……等等;就好象shockwaveflash控件的fscommand事件;不知道各位高手可否知道webbrowser控件是否有类似的事件?谢啦。
最近我正在做一个多媒体演示程序,需要用到一个webbrowser控件来显示程序内容并与应用程序"沟通",比如说:互发消息、交换变量……等等;就好象shockwaveflash控件的fscommand事件;不知道各位高手可否知道webbrowser控件是否有类似的事件?谢啦。
JavaScript中:
function ExecuteCmd(s)
{
window.status="#"+s;
window.status='';//必须要立刻修改掉Status信息,否则的话OnStatusTextChange事件会多次触发
}
Delphi中:
var sTmp,sCmd,sParam:string;iPos:integer;
begin
sTmp:=Trim(Text);
If Length(sTmp)=0 then exit;
If sTmp[1]<>'#' then exit;
iPos:=Pos(' ',sTmp);
If iPos=0 Then iPos:=Length(sTmp)+1;
sCmd:=Trim(LowerCase(Copy(sTmp,2,iPos-1)));
sParam:=Copy(sTmp,iPos+1,Length(sTmp)-iPos);
//然后再来处理sCmd了.
end;如果你要通知你的HTML中的脚本程序,可以这样:
function ExecuteScript(Script,Lang:string):OleObject;
begin
Result:=(WebBrowser1.Document As IHTMLDocument2).parentWindow.execScript(Script,Lang)
end;然后在执行
ExecuteScript('myFunc();','JavaScript');这样HTML代码中的 function myFunc(){}就会北执行了.
你的方法看似可以,不过缺少可靠性,我需要的是利用mshtml接口与webbrowser通信的那种方法.所以暂时还不能结帖,请你谅解!