Maxthon插件开发

[size=large][b][color=darkblue]前言[/color][/b][/size]
我曾在这篇博文([url]http://www.iteye.com/topic/1117020[/url])中说过要分享一下浏览器插件开发的。今天,趁现在有点时间,写一下吧,呵呵。

[size=large][b][color=darkblue]介绍[/color][/b][/size]
这个介绍不是介绍浏览器市场分布,也不是介绍浏览器插件辉煌,而是说明一下浏览器插件的开发前的准备。
首先,这里为什么只说Maxthon插件开发呢?因为我当时就是用Maxthon写的插件。答案是不是出奇的简单?
其次,插件的开发其实原理上都是差不多的,学会一个可以举一反三很快就会掌握很多浏览器插件的开发。毕竟插件开发也不是什么难事,就是HTML和JS的有机组合!
好了,话不多说,进入开发……
[size=large][b][color=darkblue]开发[/color][/b][/size]
哦,对了,在此之前有三点要跟大家说明一下:
1、目前只有Maxthon2.x才支持插件模式(不好意思,说一下,Maxthon3.x也可以支持插件开发了,参考:http://bbs.maxthon.cn/viewthread.php?tid=610087);
2、Maxthon插件开发也是有官方文档的,但其维护却很……烂!烂到无以复加!烂到你以为那不是官方文档!好吧,它的地址是:http://bbs.maxthon.cn/viewthread.php?tid=23564
大家同时也可以参考一下这个文档:http://hi.baidu.com/xkplt/blog/item/4cf206f7f7cb5f2a730eec17.html
3、最好的学习方式是下载一个人家比较好的插件下来,看源码时再看文档,这样学习效率事半功倍哦。插件下载地址:http://addons.maxthon.cn/
最近铁道部售票网站买票难已经被大家说得不能再说了~作为程序员,我当时就想到两个方法来实现自动购票:可以写一个类似的网络爬虫的程序来实现自动票请求;也可以写浏览器插件来实现该过程(个人觉得浏览器插件实现起来应该会更简单、优雅一些)!我本人因为离家近,不需要买票,所以没有动力去及时实现,结果网上这两种方式都有了!
好了,废话又讲了一堆,我们开始开发插件吧:
[size=medium][b][color=blue]配置开发[/color][/b][/size]
首先,既然是插件,就必须有遵循的加载标志,Maxthon中就是一个plugin.ini文件。所以,我先建立一个文件夹(名称最好就是插件名称),在文件夹里面建立一个plugin.ini文件,里面的内容大致如下:

[General]
Name=工作小助手
Author=hellohank
Version=1.0
ModuleType=SCRIPT
FileName=saveCustomer.htm
Comments=帮助我家老婆工作的一些小工具\n
Type=M2Plugin_BUTTON
HotIcon=icon.ico
Icon=icon.ico

[MyIE2Buttons]
Count=1
Name1=保存客户信息
FileName1=saveCustomer.htm

Count=2
Name1=完善客户信息
FileName1=perfectCustomer.htm

从上面的配置来看,我们定义了插件的显示名称、插件类型(这里是SCRIPT类型)、启动文件、插件图标等,最后,我们这里还建立了两个按钮,分别做两件不同的事!
那接下来让我们看一下htm文件中的内容做了什么事(注意这是SCRIPT类型的插件,所以它的htm文件中最好不要有html标签):
<script language="javascript">
//加载jquery
var jqueryJs=document.createElement('script');
jqueryJs.src='file:///'+(external.m2_plugin_folder(%max_security_id,PlugName))+'jquery142.js';
document.body.insertAdjacentElement('afterBegin',jqueryJs);
//
//
saveCustomer();

function saveCustomer() {
readFiles();
}

function readFiles() {
try {
var fso = new ActiveXObject("Scripting.FileSystemObject")
} catch (e) {
alert("您的浏览器安全级别太高,无法保存,请调整您的安全级别到低"+e);
return;
}
var ts, s;
var ForReading = 1;
// 定义数组
var clientsDate = new Array();
// 读取文件的内容。
ts = fso.OpenTextFile("d:\\test.txt", ForReading, true);
while (!ts.AtEndOfStream) {
s = ts.ReadLine();
clientsDate.push(s);
}
ts.Close();
// 迭代弹出读取文件的数据
for ( var i = 0; i < clientsDate.length; i++) {
alert(clientsDate[1]);
}
}
</script>

注意一下上面的代码,你会发现,它和我们平时写的HTML一模一样!因为它其实就是HTML开发方式!还有,你也可以看到我在这里引用了jquery!这一点还是很重要的,因为我们很多时候是需要借助第三方的js或什么的来简洁地处理自己的事情!
[size=medium][b][color=blue]打包安装[/color][/b][/size]
当所有的文件都写完了,就可以打包并安装调试了!
呃……好吧,我们先来说说调试吧:其实Maxthon没有调试功能(至少我开发时还没有)!但我们也可以试用啊~
找到你的Maxthon安装路径,在里面有一个Plugin文件夹,将你建的插件文件夹直接复制到该文件夹下,然后重启Maxthon即可(刷新一下页面也行,但有时候会出现加载不完全的现象,所以还是建议重启),然后你就会在相应的地方看到你的插件了,然后你就可以调用它了!
当你调试完之后,想分享给别人使用,该怎么办呢?有两个办法:
1、将你建的那个插件文件夹直接发给人家,让人家放在那个目录下即可!如果你遇到对电脑什么都不懂的小白的话(一般来说女生居多)……你要解释半天该怎么放了~
2、将这个插件文件夹打包成插件发给对方,让对方直接把插件拖到Maxthon上就可以直接安装!
打包为插件的步骤为:
a)、将插件文件夹压缩为zip文件;
b)、将该zip文件的后缀更改为.m2p即可;这个m2p文件就是插件文件,可以直接拖到浏览器上安装!
[size=large][b][color=darkblue]经验积累[/color][/b][/size]
[list]
[*]如果可以,建议大家尽量不要用maxthon2.x,因为它会无故缓存js,让你以为自己的js写得有问题!而且有时候,你的js写得就是对的,结果它还是认为有错误!这让我受尽了苦头!
[*]其它浏览器的插件开发也大抵相似(前提是这个浏览器支持插件方式),对于FireFox来说,如果你自己只是实现一些基本的功能,FireFox有一个很强大的插件(GreaseMonkey),它允许用户自定义js,然后执行!
[*]要用zip方式打包之后,再将后缀改为m2p才能正常安装;
[*]plugin.ini中可以写中文;
[*]Script类型的插件是在当前Tab页面起作用,HTML类型的是全局起作用。
[*]任何文件里面不能有乱码!所以一定要注意文件编码问题!
[*]论是SCRIPT类型,还是HTML类型,里面的代码操作与普通的开发一样(当成当前正在写的一个HTML文件)。需要注意的是:HTML页面中的内容将会在插件图标所在的位置显示。如在状态栏时,会在状态栏显示body中的内容
[*]HTML类型的插件是没有图标的!
[*]注意文件编码格式!尽量使用Nodepad文本编辑,因为它可以随时指定文本编码。
[*]SCRIPT类型插件件只有在打开页面,且页面加载完之后会会运行!
[*]如果想消除页面alert弹出框,可以用ifame嵌嵌套重写window.alert来消除js的alert跳出!
[/list]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值