Delphi开发嵌入IE的OCX,调用页面上JavaScript的方法
2013-06-26 21:24
239 查看
利用Delphi的ActiveForm,可以很方便地开发出可以嵌入IE的ActiveX组件,无需知道太多幕后的COM知识。如何使得OCX可以很方便地调用Web上的JavaScript函数呢,研究了一个下午,使用ActvieForm的Events接口搞定。说穿了不值钱,只要一句代码就搞定,但是Google半天,琢磨了N久,看来还是基本功不扎实。
首先在ActiveForm的项目中找到ridl文件,打开它,选择ActiveForm的Events接口,点击右键,建立一个新的方法,方法名为我需要调用javascript的函数名。这里我要调用一个JS的上传图片脚本,所以将其命名为“OnUploadPic”。得到这个事件的ID,这里是209。
来到xxx_TLB.pas文件中(xxx为你的项目名),在ActiveForm中Events接口中将这个OnUploadPic方法的声明加进去。
然后HTML页面中建立这个事件函数,注意event字段写入事件名,for字段写入你给OCX取的名字,也就<object>把OCX包进去的时候取的name值:
然后在Delphi中需要调用这个函数的地方,加入代码:
搞定。
首先在ActiveForm的项目中找到ridl文件,打开它,选择ActiveForm的Events接口,点击右键,建立一个新的方法,方法名为我需要调用javascript的函数名。这里我要调用一个JS的上传图片脚本,所以将其命名为“OnUploadPic”。得到这个事件的ID,这里是209。
来到xxx_TLB.pas文件中(xxx为你的项目名),在ActiveForm中Events接口中将这个OnUploadPic方法的声明加进去。
procedure OnUploadPic; dispid 209;
然后HTML页面中建立这个事件函数,注意event字段写入事件名,for字段写入你给OCX取的名字,也就<object>把OCX包进去的时候取的name值:
<script language="javascript" event="OnUploadPic" for="OcxName"> alert("hello Delphi!"); </script>
然后在Delphi中需要调用这个函数的地方,加入代码:
if FEvents <> nil then FEvents.OnUploadPic;
搞定。
相关文章推荐
- OCX调用页面上JavaScript的方法(解决FEvents=nil的问题)
- javascript调用父窗口(父页面)的方法
- javascript(js)iframe里的页面调用父窗口js函数的方法或弹出窗口调用父窗口js函数的方法
- javascript兼容IE火狐addEvent方法,以及页面一加载事件
- VS2010下ocx开发:(3)在Web页面中调用已实现的ocx控件
- 在CS类文件里向调用页面输出Javascript代码的3种方法
- javascript调用父窗口(父页面)的方法[摘自网上]
- Html5 页面中 JavaScript 启动调用的三种方法比较
- BuildManager.CreateInstanceFromVirtualPath调用aspx 页面嵌入方法
- 大灰狼的Javascript工具箱(二)——ie按钮大集合,vbscript和javascript互相调用方法
- 利用js调用iframe中父页面/子页面中的JavaScript方法
- javascript调用父窗口(父页面)的方法
- html前台javascript调用页面后台CS的GetPhone方法
- iOS与H5交互 H5与App原生交互,一般会是前端页面中的JavaScript与App使用的原生开发语言的交互。技术方案应能达到以下要求: 在js与原生进行交互的时候能保证正常的正向调用逻辑返回
- Firefox和IE,通过JavaScript调用iframe中页面的函数
- vs2010开发activex(MFC)控件/ie插件(三),js调用ocx控件的接口函数
- Firefox和IE,通过JavaScript调用iframe中页面的函数
- javascript调用父窗口(父页面)的方法
- 在用c#开发的ActiveX中调用JavaScript方法
- ASP.net AJAX 调用PageMethods实例(javascript调用服务器页面方法)