Delphi開發嵌入IE的OCX,調用頁面上JavaScript的方法


利用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方法的聲明加進去。

1 procedure OnUploadPic; dispid 209;

然后HTML頁面中建立這個事件函數,注意event字段寫入事件名,for字段寫入你給OCX取的名字,也就<object>把OCX包進去的時候取的name值:

1 <script language="javascript" event="OnUploadPic" for="OcxName">
2     alert("hello Delphi!");
3 </script>

然后在Delphi中需要調用這個函數的地方,加入代碼:

1 if FEvents <> nil then FEvents.OnUploadPic;

搞定。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM