《IE浏览器二次开发实用概况》由会员分享,可在线阅读,更多相关《IE浏览器二次开发实用概况(61页珍藏版)》请在金锄头文库上搜索。
1、 IE浏览器二次开发实用指南 IE(Internet Explorer)浏览器提供了功能强大的二次开发接口,很多下载软件(网际快车和网络蚂蚁等)即利用了相应的接口,实现了在IE中的集成。开发者如能巧妙地利用这些接口,则完全可以充分发挥创造力,开发出形形色色的IE辅助软件。 一、IE右键菜单的开发 对于IE的右键菜单,我们并不陌生,很多下载软件都在右键菜单中新增了相应的菜单项。下面让我们利用IE提供的接口实现IE右键菜单的二次开发。 (一)相关知识点 1.添加右键菜单 添加右键菜单的方法很简单,在注册表HKEY_CURRENT_USERSoftwareMicrosoftInternet Expl
2、orerMenuExt项下建立一个新项,该项名称即代表显示在IE右键菜单中的菜单项标题,如安装了网际快车或网络蚂蚁,那么在注册表编辑器中即可发现相应键值。 2.设置执行代码 添加了菜单项后,我们必须为菜单项设置单击后执行的代码。首先将新建注册表项的默认值设置为一个URL(Uniform Resource Locator,统一资源定位器)地址,当用户单击该菜单项后,IE将调用该URL所指向的脚本并执行其中的代码。我们分析相应键值即可发现网际快车和网络蚂蚁在单击IE右键菜单相应项时访问的文件。具体如下所述: (1)“Download by NetAnts”项对应访问网络蚂蚁安装目录下的“NAGet
3、.htm”文件。 (2)“Download &All by NetAnts”项对应访问网络蚂蚁安装目录下的“NAGetAll.htm”文件。 (3)“使用网际快车下载”项对应访问网际快车安装目录下的“jc_link.htm”文件。 (4)“使用网际快车下载全部链接”项对应访问网际快车安装目录下的“jc_all.htm”文件。 3.开发常用对象 在调用的目标脚本文件中,通过访问IE提供的一些右键开发专用对象,即可访问链接、图片、表单域或选择的文本等页面对象。具体如下所述: (1)external对象:该对象允许程序处理由IE浏览器组件提供的附加对象。当其可用时,对象模型由IE浏览器的组件定义。通
4、过external对象,可访问当前IE页面的各个控件,是IE右键菜单开发的关键。 (2)links对象:该对象属于Document对象,用于返回HTML页面所有超链接的集合,该对象的常用属性和方法如下所述: length属性:该属性用于返回链接的数量。 href属性:该属性用于设置链接的目标。 innerText属性:该属性用于获取包含在HTML标记中的文字。 item方法:该方法用于访问指定的链接。 tags方法:该方法用于获取HTML的标记名称。 (3)images对象:该对象属于Document对象,用于返回HTML页面所有的图片集合,即包含在“IMG”标志中的图片文件,该对象的常用属性
5、和方法如下所述: src属性:该属性用于获取图片的地址。 alt属性:该属性用于获取图片的说明文字。 4.设置显示条件 有时,右键菜单需要在特定条件下显示,因此需在前述新建的注册项下再建立一个DWORD类型键,键名为Contexts,如未设置Contexts项,则新建的IE右键菜单项会在单击任何页面对象时出现。 通过Contexts项可设置菜单项在IE中右键单击时出现的对象,该值的取值范围如下表所示: 对象 值 对象 值 缺省 0x1 图片 0x2 控件 0x4 表单域 0x8 选择文本 0x10 锚点(超链接) 0x20 Contexts项的值可为表1中的单个值或不同值的组合,如需要菜单项在
6、用户单击图片或超级链接时出现,可将其值设置为“dword:00000022”(即0x20+0x2的运算值)。 (二)程序实例 当浏览包含大量链接的页面时,用户常常希望同时打开这些链接,而IE浏览器并未提供类似“在新窗口中打开所有链接”的菜单项,只能逐一手工打开。 我们可以在IE右键菜单项中添加“在新窗口中打开所有链接”菜单项。单击“在新窗口中打开所有链接”菜单项,将弹出一个显示链接数的确认对话框,单击“是”按钮后将对每一个链接新建IE窗口进行浏览。 在该例程中我们需要使用: confirm方法:该方法用于显示确认对话框,并可获取用户的选择内容。 open方法:该方法用于新建IE窗体并打开指定的
7、URL。 首先在注册表HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt下建立新项,命名为“在新窗口中打开所有链接”,其默认值为对应的脚本文件。然后在该项中建立一个DWORD键“Contexts”,值为0x35(即单击页面时显示该菜单项)。 在新建项对应的脚本文件中输入代码: script language=VBScript sub displink() 获取页面全部链接 set links = external.menuArguments.document.links 定义存放链接的数组 ReDim params(links.
8、length*2) 在确认框中显示链接数量 result=window.confirm(共有+cstr(links.length)+个链接,是否准备开新窗口打开?) 如确认,则新建IE窗口并打开所有链接 if result=-1 then for i = 0 to links.length-1 调用open方法打开新窗口 result=window.open(links(i).href) next end if end sub call displink() /script 重启IE浏览器,访问包含多个链接的网页,单击该菜单项即可实现前述效果。 二、IE右键菜单开发进阶 虽然网际快车和网络蚂蚁
9、在IE右键菜单中添加了相应的菜单项,但学习了前述的右键菜单基本开发后,完全可自行动手对其进行IE右键菜单的扩展开发,即结合脚本程序处理IE网页后调用这两个下载工具来实现各类特殊的下载功能,进一步增强IE右键菜单的功能。 (一)相关知识点 1.网际快车组件 (1)Netscape对象:该对象用于启动网络快车,类名为“JetCar.Netscape”。 (2)AddUrlList方法:批量添加下载地址。 (3)AddUrl:添加一个下载地址。 2.网络蚂蚁组件 (1)API对象:该对象用于启动网络蚂蚁。类名为“NetAnts.API”。 (2)AddUrlList方法:批量添加下载地址。 (3)A
10、ddUrl:添加一个下载地址。 3.添加下载地址的要点 网际快车和网络蚂蚁在批量添加下载地址时需注意,必需创建一个元素个数为下载链接数2倍加1的数组,然后数组的第一个元素需存放当前页面地址,其他元素如为奇数,则存放链接的网址,如为偶数,则存放链接的说明文字。 (二)程序实例 网际快车和网络蚂蚁在下载全部链接时均无法批量下载以“IMG”标记方式直接嵌入网页的图片,仅能使用下载单个链接的方法逐一下载,效率大为降低。本实例通过自行编制脚本程序实现了IE右键菜单的扩展开发,运行后对包含链接的网页进行下载全部链接操作时,其下载列表中不仅添加所有的链接,还可添加所有的页面图片,网际快车的效果如图1所示:
11、通过分析网际快车和网络蚂蚁所使用的脚本文件代码,可得出这两个软件无法下载网页内嵌图片的原因,具体如下所述: (1)脚本均未对网页的图片对象进行相关操作。 (2)脚本仅对链接(links)对象进行了操作。 按前述知识,添加下载所有内嵌图片功能的步骤如下所述: (1)获取网页的图像(images)对象。 (2)定义新的下载列表数组。 (3)遍历图像对象,按程序接口添加相关的网址和说明。 由于创建IE右键菜单项的步骤已经介绍,因此不做赘述,对应的脚本程序代码如下所示: script language=VBScript On Error Resume Next set JetCarCatch=Crea
12、teObject(JetCar.Netscape) if err0 then MsgBox(FlashGet not properly installed!+ vbCrLf+Please Install FlashGet again) else set links = external.menuArguments.document.links 将页面的所有图片赋予imgs变量 set imgs = external.menuArguments.document.images 说明:按链接和图片的数量进行计算,并重定义数组 ReDim params(links.length*2+imgs.len
13、gth*2) j=links.length-1 k=imgs.length-1 params(0)=external.menuArguments.document.Url for i = 0 to j params(i*2+1)=links(i).href params(i*2+2)=links(i).innerText next for j = 0 to k 将奇数的数组元素赋值为图片的目标网址,为FlashGet的程序接口要求 params(j*2+1+i*2)=imgs(j).src 将偶数的数组元素赋值为图片的说明文字,为FlashGet的程序接口要求 params(j*2+2+i*2
14、)=imgs(j).alt next JetCarCatch.AddUrlList params end if /script 三、IE工具栏按钮的开发 在安装了网际快车、网络蚂蚁和金山系列软件后,均会在IE工具栏或“工具”菜单中添加相应的按钮和菜单项。下面让我们利用IE提供的接口实现IE工具栏按钮的二次开发。 (一)相关知识点 添加IE任务栏按钮需对注册表进行多步操作,因此建议读者先备份注册表。通过对已有IE任务栏按钮的相应注册表项进行分析,得出修改注册表的基本步骤,具体如下所述: 1.创建GUID 在注册表HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerExtensionsCmdMapping下建立一个GUID(Globally Unique IDentifier,全局唯一描述符)。 本例建立的DWORD值名称是“FB5A1910-F110-11d2-BB9E-00C04F795683”,其值为“0000200c”(值由NextId键值决定)。 建立完毕,在同一主键下有一个重要的键值需修改,即NextId。建议在修改前记录NextId值,在建立GUID需将该值递增1,如原NextId为“dword:0000200