[转]javascript中调用delphi函数

以下是test.htm页的内容

首先定义一个插件对象

 

<object id="Mapupload" name="Mapupload" width="0" height="0" classid="clsid:045FA9B9-B373-4D4C-AE76-128A19A4B6AE">
</object>


<script type="text/javascript">

//此函数打开activexform窗体并为activeform的属性赋值
function loadUploader(){
 
if(window.ActiveXObject)
{
  
try
{
  document.getElementById(
"Mapupload").picname='20060531';  //为对象赋值

  document.getElementById("Mapupload").open();   //调用对象的open方法
  }

  
catch(e){

  }

 }

 
else{

 }

}

</script>

<TEXTAREA style="WIDTH: 400px; HEIGHT: 226px" name="" id='Content' rows=20 cols=40></TEXTAREA>
<button name="start" type="button" onclick="loadUploader();"></button>

<!-- script函数 -->
<script Language=Javascript>
function InsertHTML()
{
 
var UrlStr = document.getElementById("MapUpload"
).Content;
 alert(UrlStr);
}

</script> 
<!-- 定义Delphi中访问的OnCall事件对应的Script方法 -->


定义对象的OnInsertHTML事件为activeform的OninsertHTML事件,并触发页面的inserthtml方法
<SCRIPT FOR="Mapupload" 
        EVENT
="OnInsertHTML()"
 
        LANGUAGE
="JScript">

    
<!-- insert script commands -->
   InsertHTML();
</SCRIPT>

 

delphi中仅需在_TLB中声明OninsertHTML事件,Open方法,content属性即可

 

procedure TFeSendFrmX.open;
begin

  hnd :
= self.handle;
  FrmUpLoad :
=
 TFrmUpLoad.Create(self);
  
with FrmUpload do

  
begin
    ShowModal;
    Destroy;
  
end;
end
;

procedure
 TFeSendFrmX.ShowContent;
begin

  FEvents.OnInsertHTML;
end;

function
 TFeSendFrmX.Get_Content: WideString;
begin

  Result :
= FrmUpLoad.Code;
end
;

posted on 2008-11-29 23:08  小阳  阅读(1020)  评论(0编辑  收藏  举报

导航