IE(微软)浏览器扩展开发初探

         最近开发浏览器插件有点上瘾,先开发了一个FF(火狐)浏览器插件,后来又开发了一个谷歌浏览器的插件,还是不觉得不过瘾,这次要尝试开发一个粗糙的IE浏览器插件,最终实现在一键实现订餐,一键取消订餐操作。
         凡事知道就好做了,只是这次走了些弯路。网上只要提到IE插件开发的无不提到Com,BHO等等概念,为此我还下载了vs2010,安装platform sdk,并到codeproject下载N个例子进行研究,虽然已经好几年不用vs2010了,也不曾在写com了,还好有点底子,基本能看懂,了解了下BHO的原理,同时了解了com的一些东西,也算有些收获。不过越看越觉得我的不需要这么麻烦,不需要BHO处理各种消息状态。我只需要在IE上增加一个按钮,点击这个按钮,调用我写的js触发一个操作,并给出提示即可。走点弯路没关系,下次也许用的到。

         现在改变策略,既然要增加按钮,触发操作。那到internet explorer development上找帮助就可以了,还真找到一篇文章,关于如何add menu items。仔细阅读了解到,IE上的按钮是通过增加注册表项来完成了,随即生成了两个注册表项

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InternetExplorer\Extensions\{5D78A592-AA1A-4E6F-A808-9214B4A7222A}]
"CLSID"="{5D78A592-AA1A-4E6F-A808-9214B4A7222A}"
"MenuText"="我要订餐"
"MenuCustomize"="我要订餐"
"MenuStatusBar"="我要订餐"
"ClsidExtension"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InternetExplorer\Extensions\{BA6C7C63-9EFC-4DA1-B5D9-666A624F4831}]
"CLSID"="{5D78A592-AA1A-4E6F-A808-9214B4A7222A}"
"MenuText"="取消订餐"
"MenuCustomize"="取消订餐"
"MenuStatusBar"="取消订餐"
"ClsidExtension"=""

          导入注册表项,重启IE,在工具中看到这两个选项,我要订饭和取消订饭。只是点击这两个menu item没有任何响应,原因是我们没有给这两个menu item增加增加响应事件。很简单在注册表项中增加一个exec即可,我们要使用之前的js,那就需要写一个页面来执行这个js,比如写如下代码

<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=utf-8">
<title>订餐系统</title>
<meta name="keywords"content="">
<scriptsrc="./dingcan.js"></script>
</head>
<bodyonload="DingCan.loginAndDingCan()">
<span id="dcdingcan">正在订餐中...</span>
</body>

如果我们的exec这样写

"Exec"="file:///D:/Program%20Files/dingcan/dingcan.html"

IE会重新打开一个窗口,用户体验不好,这里我们用点小技巧,把.html修改成.hta后缀,整个事件清净了,这样设置之后,点击按钮后,是这个样子的有点大,

在html增加如下代码,设置窗口大小,

<scriptlanguage="javascript">
window.resizeTo(200,100)
</script>

这次是这样的,完美了

Hta内容补充:HTA 全名为 HTMLApplication ( HTML 全名为 Hyper Text Markup Language ),HTA 为 HTML 应用程序。HTA格式的文件不需要在浏览器中执行,windows可以直接执行此程序。更详细的内容可以参考HTML Applications:
http://msdn.microsoft.com/en-us/library/ms536471%28v=VS.85%29.aspx

IE插件实现的很猥琐,只不过他实现了我要的功能。这几个扩展都是皮毛,没有什么高深技术含量,只是希望对大家有所帮助,也希望消除做浏览器扩展的不自信。

参考资料
Add menu items http://msdn.microsoft.com/en-us/library/aa753591(v=VS.85).aspx
Internet Explorer Development http://msdn.microsoft.com/en-us/library/bb188743.aspx

时间: 2024-10-28 00:45:30

IE(微软)浏览器扩展开发初探的相关文章

Firefox(火狐)浏览器扩展开发初探

        最近开发一个FF的扩展,自动完成公司的订餐操作,主要完成的功能很简单:登陆网站,执行一个特定操作,并在ff的状态栏内显示执行的成功或者失败的状态.以前没有写过FF扩展,需要从头学习,在完成这个扩展过程中,有些收获记录下来,一方面自己记录,另一方面也方便有此需求的同学.在整个开发过程中碰到一些问题,也走了一些弯路,希望对其他同学有所帮助.         由于是第一开发FF扩展,没什么经验,所以,第一步先去搜索些关于FF插件开发的文档.先几乎把所有关于FF插件开发的中文文档看个边,

Chrome(谷歌)浏览器扩展开发初探

        FF(火狐)浏览器插件已经完成了,确实也很好用,但是有些同学不习惯使用ff浏览器,喜欢使用谷歌浏览器,点击这里查看上篇问题.那么我们就开发一个chrome的扩展,实现订餐功能.         在FF浏览器扩展中,我们使用xul定义FF的界面,使用javascript实现处理逻辑,在谷歌浏览器中,我们同样不需要学习activeX,也不需要学习com,只是使用html和javascript即可实现开发谷歌浏览器扩展的功能,只是为了简单起见,我们这次手动点击按钮,出发订餐操作.   

谷歌Chrome浏览器扩展程序开发小记_javascript技巧

根据公司的规定,每月八小时,弹性工作制.所以大家平时来的不太准时,如果有事,下班也就早些回去了.所以一个月下来工作时间可能不够,但是公司的考勤日历是这样的: 除了请假和法定节假日外,其他样式显示都是一样的,每次都要一个个估算这个月的大概工作时间,十分不方便.后来看到公司有人在用一个Chrome扩展程序,可以计算出一个月的工作时间,但是我觉得还是没有看到我想看的东西,因为除了每个月的累计工作时间外,我还想看到:平均每天工作时长.每一天的工作时长.20点以后的天数(20点以后下班的可以报销晚饭的,哈

微软炫耀斯巴达浏览器,原生支持Chrome浏览器扩展

1月21日是微软的大日子,微软在那天向外界揭示了 Windows 10消费者预览版,并且炫耀新的斯巴达浏览器.根据Neowin网站报道,斯巴达浏览器将原生支持Chrome浏览器扩展,以提升斯巴达浏览器对开发者的 吸引力.另外,Chrome浏览器开发者也在努力让Chrome浏览器扩展可以在斯巴达浏览器上正常工作. 这些消息证明斯巴达浏览器和Chrome浏览器之间存在不少 相似性, 这种做法也可以节省开发商不少时间.之前,开发者针对一款新浏览器,不得不重新开始研发一个新的扩展.而现在,他们可以简单地

微软斯巴达浏览器原生支持 Chrome 浏览器扩展

今天是微软的大日子,微软会在今天向外界揭示 Windows 10消费者预览版,并且炫耀新的斯巴达浏览器.根据Neowin网站报道,斯巴达浏览器将原生支持Chrome浏览器扩展,以提升斯巴达浏览器对开发者的 吸引力.另外,Chrome浏览器开发者也在努力让Chrome浏览器扩展可以在斯巴达浏览器上正常工作. 这些消息证明斯巴达浏览器和Chrome浏览器之间存在不少 相似性, 这种做法也可以节省开发商不少时间.之前,开发者针对一款新浏览器,不得不重新开始研发一个新的扩展.而现在,他们可以简单地把他们

JavaScript开发Chrome浏览器扩展程序UI的教程_javascript技巧

基本知识 1.插件文件结构 1.1.manifest.json每一个扩展.可安装的WebApp.皮肤,都有一个JSON格式的manifest文件,里面存放重要的插件相关信息. 一个最基本的配置例子: { "name": "browser action demo", "version": "1.0", "permissions": [ "tabs", "http://*/*&qu

3大主流浏览器Web开发工具

一个快速加载网页在很大程度上节约用户的浏览页面时间成本,作为一名站长,我们要寻求一些解决办法,传统的在浏览器中 "右键-查看源代码"已经过时了,它不能做良好的代码检查,作为一名优秀的web开发人员,应该不断学习和尝试新事物.下面我就介绍下三大主流浏览器的 web人员开发工具介绍及其使用方法. 火狐(Firefox)的Firebug和YSlow Firebug是一个非常成熟和完善的工具(点此下载),各种浏览器下都能使用(IE,Firefox,Opera, Safari),通常我在火狐浏览

Edge浏览器扩展将于2016夏推出 Insider成员率先使用

  如果消息属实,Windows Insider会员可能在2015年底或2016年初收到带有Edge浏览器扩展程序的Win10预览版推送.不过这一切仅为猜测,因为微软尚未公布任何相关消息. Edge浏览器扩展程序是微软为这款全新产品配备的"重量级"功能,据说可以整体移植Chrome等浏览器的扩展程序.微软方面表示,使用诸如JavaScript和HTML等通用Web技术的开发者,为其他Modern浏览器开发的扩展程序都将可以应用到Edge浏览器中,这一过程只需将代码做细微改动,甚至无需任

国内外浏览器设计对比初探

国内外浏览器设计对比初探 一.准备工作 1研究目的对比评测针对国内市场的浏览器和国际市场浏览器设计思路的不同.面向国内市场的浏览器针对国内用户做了哪些改变,以及为什么这么做.(请翻到最后,直接查看总论) 注①:本文中出现的浏览器均指桌面版网页浏览器注②:测试的操作系统平台为Windows7笔记本电脑 2浏览器分类国内浏览器市场占有率,2010年5月 国外浏览器市场占有率 2010年5月 根据这次研究的目的,我们把浏览器做这样的分类.(均按占有率顺序排列)  国内组:IE6.360浏览器.遨游.