IE插件开发

来源:互联网 发布:python绝技中文版 编辑:程序博客网 时间:2024/06/04 20:46

     又叫IE扩展(Internet Explorer Extension),是一种通过使用IE的扩展机制实现的组件,该组件可以实现对现有IE功能的扩展。IE具有以下扩展方式:

    上下菜单(Context menu extensions):在上下文菜单中加入自定义的菜单,以执行自定义的命令,实现IE功能的扩展。

    工具栏(Toolbars):常见的IE插件就是各种IE工具栏。它是以IE工具栏的形式集成在IE中,即实现IE功能的扩展,也实现IE界面的扩展。常用的IE工具栏有百度工具栏、Google工具栏等。

     BHO对象(Browser Helper Objects):这种扩展只能实现IE功能的扩展,而无法实现IE界面的扩展。

接口调用示例

开发人员在Web页面中通过window.external对象使用插件提供的控制接口。如:

     int OffHookCtrl (int iChannel)      

Web页面中调用方法如下:

window.external.OffHookCtrl( iChannel )

       插件以通知的方式将事件报告给IE中的所有页面,页面可以选择处理还是不处理这些事件。

回调函数形式

       开发人员可以指定一个页面中的脚本函数作为回调函数,当有重要事件发生时,插件会通过回调函数通知页面。

 

       上图表示,当有事件发生时,插件会调用名为EventHanldScript的函数以通知页面。页面中脚本函数形式如下:

   <script language="JavaScript">        <!--事件通知调用EventHandleScript-->        function EventHandleScript( strEventData )        {            //处理事件            var WM_CALLERID = '' + (0x0400 + 106),            WM_INDTMF = '' + (0x0400 + 101);         var event = context.match(/EventID=([\w]+)/i),            ani = context.match(/ANI=([\w]*)/i),            dnis = context.match(/DNIS=([\w]*)/i),            data = context.match(/EventData=([^\&]*)/i),            info = context.match(/DetailInfo=([^\&]*)/i);         if (!event) return;        event = event[1];        if (ani) ani = ani[1];        if (dnis) dnis = dnis[1];        if (data) data = data[1];        if (info) info = info[1];                //如果是振铃事件        if (WM_CALLERID == event && ani)         {            openPortal(ani);            ……        }     }    </script>


 

        回调函数要求有一个参数,此参数用于接收事件数据。

原创粉丝点击