您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > IE浏览器二次开发实用指南(doc63)(1)
-1-IE浏览器二次开发实用指南IE(InternetExplorer)浏览器提供了功能强大的二次开发接口,很多下载软件(网际快车和网络蚂蚁等)即利用了相应的接口,实现了在IE中的集成。开发者如能巧妙地利用这些接口,则完全可以充分发挥创造力,开发出形形色色的IE辅助软件。一、IE右键菜单的开发对于IE的右键菜单,我们并不陌生,很多下载软件都在右键菜单中新增了相应的菜单项。下面让我们利用IE提供的接口实现IE右键菜单的二次开发。(一)相关知识点1.添加右键菜单添加右键菜单的方法很简单,在注册表HKEY_CURRENT_USER\Software\Microsoft\InternetExplorer\MenuExt项下建立一个新项,该项名称即代表显示在IE右键菜单中的菜单项标题,如安装了网际快车或网络蚂蚁,那么在注册表编辑器中即可发现相应键值。2.设置执行代码-2-添加了菜单项后,我们必须为菜单项设置单击后执行的代码。首先将新建注册表项的默认值设置为一个URL(UniformResourceLocator,统一资源定位器)地址,当用户单击该菜单项后,IE将调用该URL所指向的脚本并执行其中的代码。我们分析相应键值即可发现网际快车和网络蚂蚁在单击IE右键菜单相应项时访问的文件。具体如下所述:(1)“DownloadbyNetAnts”项对应访问网络蚂蚁安装目录下的“NAGet.htm”文件。(2)“Download&AllbyNetAnts”项对应访问网络蚂蚁安装目录下的“NAGetAll.htm”文件。(3)“使用网际快车下载”项对应访问网际快车安装目录下的“jc_link.htm”文件。(4)“使用网际快车下载全部链接”项对应访问网际快车安装目录下的“jc_all.htm”文件。3.开发常用对象-3-在调用的目标脚本文件中,通过访问IE提供的一些右键开发专用对象,即可访问链接、图片、表单域或选择的文本等页面对象。具体如下所述:(1)external对象:该对象允许程序处理由IE浏览器组件提供的附加对象。当其可用时,对象模型由IE浏览器的组件定义。通过external对象,可访问当前IE页面的各个控件,是IE右键菜单开发的关键。(2)links对象:该对象属于Document对象,用于返回HTML页面所有超链接的集合,该对象的常用属性和方法如下所述:length属性:该属性用于返回链接的数量。href属性:该属性用于设置链接的目标。innerText属性:该属性用于获取包含在HTML标记中的文字。item方法:该方法用于访问指定的链接。tags方法:该方法用于获取HTML的标记名称。-4-(3)images对象:该对象属于Document对象,用于返回HTML页面所有的图片集合,即包含在“<IMG>”标志中的图片文件,该对象的常用属性和方法如下所述:src属性:该属性用于获取图片的地址。alt属性:该属性用于获取图片的说明文字。4.设置显示条件有时,右键菜单需要在特定条件下显示,因此需在前述新建的注册项下再建立一个DWORD类型键,键名为Contexts,如未设置Contexts项,则新建的IE右键菜单项会在单击任何页面对象时出现。通过Contexts项可设置菜单项在IE中右键单击时出现的对象,该值的取值范围如下表所示:对象值对象值-5-缺省0x1图片0x2控件0x4表单域0x8选择文本0x10锚点(超链接)0x20Contexts项的值可为表1中的单个值或不同值的组合,如需要菜单项在用户单击图片或超级链接时出现,可将其值设置为“dword:00000022”(即0x20+0x2的运算值)。(二)程序实例-6-当浏览包含大量链接的页面时,用户常常希望同时打开这些链接,而IE浏览器并未提供类似“在新窗口中打开所有链接”的菜单项,只能逐一手工打开。我们可以在IE右键菜单项中添加“在新窗口中打开所有链接”菜单项。单击“在新窗口中打开所有链接”菜单项,将弹出一个显示链接数的确认对话框,单击“是”按钮后将对每一个链接新建IE窗口进行浏览。在该例程中我们需要使用:confirm方法:该方法用于显示确认对话框,并可获取用户的选择内容。open方法:该方法用于新建IE窗体并打开指定的URL。首先在注册表HKEY_CURRENT_USER\Software\Microsoft\InternetExplorer\MenuExt下建立新项,命名为“在新窗口中打开所有链接”,其默认值为对应的脚本文件。然后在该项中建立一个DWORD键“Contexts”,值为0x35(即单击页面时显示该菜单项)。-7-在新建项对应的脚本文件中输入代码:<scriptlanguage=VBScript>subdisplink()'获取页面全部链接setlinks=external.menuArguments.document.links'定义存放链接的数组ReDimparams(links.length*2)'在确认框中显示链接数量result=window.confirm(共有+cstr(links.length)+个链接,是否准备开新窗口打开?)'如确认,则新建IE窗口并打开所有链接ifresult=-1thenfori=0tolinks.length-1'调用open方法打开新窗口-8-result=window.open(links(i).href)nextendifendsubcalldisplink()</script>重启IE浏览器,访问包含多个链接的网页,单击该菜单项即可实现前述效果。二、IE右键菜单开发进阶虽然网际快车和网络蚂蚁在IE右键菜单中添加了相应的菜单项,但学习了前述的右键菜单基本开发后,完全可自行动手对其进行IE右键菜单的扩展开发,即结合脚本程序处理IE网页后调用这两个下载工具来实现各类特殊的下载功能,进一步增强IE右键菜单的功能。(一)相关知识点1.网际快车组件-9-(1)Netscape对象:该对象用于启动网络快车,类名为“JetCar.Netscape”。(2)AddUrlList方法:批量添加下载地址。(3)AddUrl:添加一个下载地址。2.网络蚂蚁组件(1)API对象:该对象用于启动网络蚂蚁。类名为“NetAnts.API”。(2)AddUrlList方法:批量添加下载地址。(3)AddUrl:添加一个下载地址。3.添加下载地址的要点网际快车和网络蚂蚁在批量添加下载地址时需注意,必需创建一个元素个数为下载链接数2倍加1的数组,然后数组的第一个元素需存放当前页面地址,其他元素如为奇数,则存放链接的网址,如为偶数,则存放链接的说明文字。(二)程序实例网际快车和网络蚂蚁在下载全部链接时均无法批量下载以“<IMG>”标记方式直接嵌入网页的图片,仅能使用-10-下载单个链接的方法逐一下载,效率大为降低。本实例通过自行编制脚本程序实现了IE右键菜单的扩展开发,运行后对包含链接的网页进行下载全部链接操作时,其下载列表中不仅添加所有的链接,还可添加所有的页面图片,网际快车的效果如图1所示:通过分析网际快车和网络蚂蚁所使用的脚本文件代码,可得出这两个软件无法下载网页内嵌图片的原因,具体如下所述:(1)脚本均未对网页的图片对象进行相关操作。(2)脚本仅对链接(links)对象进行了操作。按前述知识,添加下载所有内嵌图片功能的步骤如下所述:(1)获取网页的图像(images)对象。(2)定义新的下载列表数组。(3)遍历图像对象,按程序接口添加相关的网址和说明。由于创建IE右键菜单项的步骤已经介绍,因此不做赘述,对应的脚本程序代码如下所示:-11-<scriptlanguage=VBScript>OnErrorResumeNextsetJetCarCatch=CreateObject(JetCar.Netscape)iferr<>0thenMsgBox(FlashGetnotproperlyinstalled!+vbCrLf+PleaseInstallFlashGetagain)elsesetlinks=external.menuArguments.document.links'将页面的所有图片赋予imgs变量setimgs=external.menuArguments.document.images'说明:按链接和图片的数量进行计算,并重定义数组ReDimparams(links.length*2+imgs.length*2)j=links.length-1-12-k=imgs.length-1params(0)=external.menuArguments.document.Urlfori=0tojparams(i*2+1)=links(i).hrefparams(i*2+2)=links(i).innerTextnextforj=0tok'将奇数的数组元素赋值为图片的目标网址,为FlashGet的程序接口要求params(j*2+1+i*2)=imgs(j).src'将偶数的数组元素赋值为图片的说明文字,为FlashGet的程序接口要求params(j*2+2+i*2)=imgs(j).altnextJetCarCatch.AddUrlListparamsendif-13-</script>三、IE工具栏按钮的开发在安装了网际快车、网络蚂蚁和金山系列软件后,均会在IE工具栏或“工具”菜单中添加相应的按钮和菜单项。下面让我们利用IE提供的接口实现IE工具栏按钮的二次开发。(一)相关知识点添加IE任务栏按钮需对注册表进行多步操作,因此建议读者先备份注册表。通过对已有IE任务栏按钮的相应注册表项进行分析,得出修改注册表的基本步骤,具体如下所述:1.创建GUID在注册表HKEY_CURRENT_USER\Software\Microsoft\InternetExplorer\Extensions\CmdMapping下建立一个GUID(GloballyUniqueIDentifier,全局唯一描述符)。-14-本例建立的DWORD值名称是“{FB5A1910-F110-11d2-BB9E-00C04F795683}”,其值为“0000200c”(值由NextId键值决定)。建立完毕,在同一主键下有一个重要的键值需修改,即NextId。建议在修改前记录NextId值,在建立GUID需将该值递增1,如原NextId为“dword:00002009”,那么建立新GUID后,NextId值应修改为“dword:000020a”(按十六进制计算)。2.创建注册表项在注册表HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Extensions下添加一个新项,名称为刚才建立的GUID名称。以下介绍的键位置,如未指定,均用“<TestIEGUID>”来代表(HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Extensions\<TestIEGUID>”)。3.设置按钮图标-15-在<TestIEGUID>下新建一个String类型值,名称为“HotIcon”,该值代表当按钮获取焦点时的图标,一般包括图标文件全路径名和图标索引,如“C:\ProgramFiles\Messenger\MSMSGS.EXE,302”,也可直接输入图标文件名。在<TestIEGUID>下新建一个String类型值,名称为“Icon”,该值代表当按钮失去焦点时的图标,一般包括图标文件全路径名和图标索引,也可直接输入图标文件名。IE工具栏按钮需20×20和16×16两种尺寸的图标,前者用于正常状态显示,后者用于全屏状态显示,因此上述HotIcon和Icon指向的图标资源应为三个图标的组合,这三个图标的规格如下表所示:尺寸颜色数是否必需尺寸颜色数是否必需-16-16×1616色是20×2016色否20×20256色是4.设置提示内容在<TestIEGUID>下建立一个
本文标题:IE浏览器二次开发实用指南(doc63)(1)
链接地址:https://www.777doc.com/doc-1232640 .html