Twebbrowser调用JS脚本问题。(100分)

  • 主题发起人 主题发起人 东门飚血
  • 开始时间 开始时间

东门飚血

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Tfrmmain.Button3Click(Sender: TObject);
var
win: IHTMLWindow2;
begin
win := IHTMLDocument2(Wb.Document).ParentWindow;
win.execScript(memo1.Text,'javascript');
end;

我使用这个办法,调用WB内网页中的JS脚本。
但是这个网页是有frame的。并且JS脚本执行的时候,var p:=this
也就是说,要求要有调用对像。这种怎么调用法。查了快一天的资料也没找到。
 
发现其实是event的问题。。脚本调用时需要event.
那有没有办法解决了?
 
我做了一个例子,不知对你是否有帮助你看看,注意javascript函数名的大小写
test.htm部分:
aa

<script language='javascript'>
function SayHello()
{
alert("Hello!");
}
</script>
---------------
delphi部分:
use mshtml;
.
.
.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
wb:IHTMLDocument2;
begin
wb:=IHTMLDocument2(webbrowser1.Document);
wb.parentWindow.execScript('SayHello()','javascript');
//(WebBrowser1.Document as IHTMLDocument2).parentWindow.execScript('SayHello()','javascript')
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

webbrowser1.Navigate(ExtractFilePath(Application.ExeName)+'test.htm');
end;
 
...你的方法和我用的一样,调用后会说,缺少对象.
 
后退
顶部