*****问,activex控件如何访问 html 中的 javascript 方法, 300分送给有经验的朋友(100分)

  • 主题发起人 liboy.com
  • 开始时间
L

liboy.com

Unregistered / Unconfirmed
GUEST, unregistred user!
在 html 中包含了一个 activex 控件,同时 html 中有如下 javascript 代码
<html>
<body>

......

<script>

function MyAdd( var a, var b )
{
alert( a + b );
}

</script>




在 activex 控件中加一个按钮,点这个按钮时,就调用 javascript中的 MyAdd 方法,并弹出结果.
 
應該是不行吧(不敢肯定)。
 
用事件。activex抛出一下事件,例Lfunccancel.
html中就能收到
<script language="VBScript" type="text/VBScript">
Sub ucXYRV_Lfunccancel()
MsgBox ("单击退出")
End Sub
</script>
 
请 tintin2010 给出 delphi 中的代码写法.
 
在Delphi下可以通过DHTMLEdit实现楼主所说的功能,DHTMLEdit是Activex控件,使用DHTMLEdit打开网页,而后编辑,程序界面放置一个按钮,按钮的Onclick事件中的代码如下:
...
var range:range:eek:levariant;
begin
a:='<P><INPUT value="'+k+'" TYPE=BUTTON onClick=btnA("'+a,+','+b+'")></p>';
end;
其他楼主需要的代码可以自己添加!
 
对不起,上面所说的value="'+k+'" 中的k为按钮显示的名称,楼主可以根据需要自行改动!
 
在ActiveForm中用ShowMessage在网页执行时也能弹出对话框的,跟程序中的一样!
 
因为 activex 是写代码时就已经写死了,发布后, 网页的javascript 代码是允许随时修改,所以需要activex动态的调用网页中的activex
 
uses MSHTML;

procedure TForm1.Button1Click(Sender: TObject);
var spIE:IOleContainer;
spDoc:IHTMLDocument2;
spWnd:IHTMLWindow2;
begin
ActiveFormControl.ClientSite.GetContainer(spIE);
if not Assigned(spIE) then Exit;
spIE.QueryInterface(IID_IHTMLDocument2,spDoc);
if not Assigned(spDoc) then Exit;
spWnd:=spDoc.parentWindow;
if not Assigned(spWnd) then Exit;
spWnd.execScript('MyAdd(a,b )','javascript');
end;
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
926
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部