`
hellohank
  • 浏览: 144018 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Maxthon插件开发

 
阅读更多
前言
我曾在这篇博文(http://www.iteye.com/topic/1117020)中说过要分享一下浏览器插件开发的。今天,趁现在有点时间,写一下吧,呵呵。

介绍
这个介绍不是介绍浏览器市场分布,也不是介绍浏览器插件辉煌,而是说明一下浏览器插件的开发前的准备。
首先,这里为什么只说Maxthon插件开发呢?因为我当时就是用Maxthon写的插件。答案是不是出奇的简单?
其次,插件的开发其实原理上都是差不多的,学会一个可以举一反三很快就会掌握很多浏览器插件的开发。毕竟插件开发也不是什么难事,就是HTML和JS的有机组合!
好了,话不多说,进入开发……
开发
哦,对了,在此之前有三点要跟大家说明一下:
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/
最近铁道部售票网站买票难已经被大家说得不能再说了~作为程序员,我当时就想到两个方法来实现自动购票:可以写一个类似的网络爬虫的程序来实现自动票请求;也可以写浏览器插件来实现该过程(个人觉得浏览器插件实现起来应该会更简单、优雅一些)!我本人因为离家近,不需要买票,所以没有动力去及时实现,结果网上这两种方式都有了!
好了,废话又讲了一堆,我们开始开发插件吧:
配置开发
首先,既然是插件,就必须有遵循的加载标志,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或什么的来简洁地处理自己的事情!
打包安装
当所有的文件都写完了,就可以打包并安装调试了!
呃……好吧,我们先来说说调试吧:其实Maxthon没有调试功能(至少我开发时还没有)!但我们也可以试用啊~
找到你的Maxthon安装路径,在里面有一个Plugin文件夹,将你建的插件文件夹直接复制到该文件夹下,然后重启Maxthon即可(刷新一下页面也行,但有时候会出现加载不完全的现象,所以还是建议重启),然后你就会在相应的地方看到你的插件了,然后你就可以调用它了!
当你调试完之后,想分享给别人使用,该怎么办呢?有两个办法:
1、将你建的那个插件文件夹直接发给人家,让人家放在那个目录下即可!如果你遇到对电脑什么都不懂的小白的话(一般来说女生居多)……你要解释半天该怎么放了~
2、将这个插件文件夹打包成插件发给对方,让对方直接把插件拖到Maxthon上就可以直接安装!
打包为插件的步骤为:
a)、将插件文件夹压缩为zip文件;
b)、将该zip文件的后缀更改为.m2p即可;这个m2p文件就是插件文件,可以直接拖到浏览器上安装!
经验积累
  • 如果可以,建议大家尽量不要用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跳出!
分享到:
评论

相关推荐

    web开发的浏览器(工具)插件

    ViewPage是MyIE2/Maxthon浏览器插件,这个插件不算是纯粹的开发辅助,它看起来更像是资源提取,可以方便的提取网页中的源代码,包括所有框架的源代码,提取图像、Flash、媒体文件、链接,我最欣赏的就是能方便的查看...

    傲游(Maxthon) 2.5.8.1332

    傲游浏览器(Maxthon Browser), 是一款功能丰富的多标签浏览器。傲游浏览器允许在同一窗口内打开任意多个页面, 减少浏览器对系统资源的占用率, 提高网上冲浪的效率. 傲游基于IE内核开发, 这意味着您可以在傲游浏览器...

    Maxthon2

    ie浏览其中,maxthon2无疑是全球领先的 1.支持内用控制(用户可限定是否执行网页中的脚本或控件) 2.支持间不安全行为侦测(如果浏览的页面企图执行本地程序,会谈处警告让用户确认是否应该执行) 3.支持...

    百度在线编辑器Net专版

    Ueditor特点: 1、体积小巧,性能优良,使用简单 2、分层架构,方便定制与...2. 命令插件层: 基于核心层开发command命令,命令之间相互独立。 3. 界面层: 为命令层提供用户使用界面。 满足不同层次用户的需求。

    LyhHtmlEditor源码

    LyhHtmlEditor源码 介绍 ... Ueditor特点: 1、体积小巧,性能优良,使用简单 ...2. 命令插件层: 基于核心层开发command命令,命令之间相互独立。 3. 界面层: 为命令层提供用户使用界面。 满足不同层次用户的需求。

    百度UE编辑器(Ueditor).Net版 v1.4.3.2.zip

    2. 命令插件层: 基于核心层开发command命令,命令之间相互独立。3. 界面层: 为命令层提供用户使用界面。满足不同层次用户的需求。 百度透露,到目前为止,已经针对Ueditor进行了上千个自动化测试用例和手动化测试...

    IEPlus-1.5.0还原标签

    IEPlus是根据微软IE Addon规范开发的一个增强性插件,它不仅弥补了系统自带的IE6和IE7在使用上的不便之处,通过极小的资源占用使得您的IE更易于使用,浏览效率更高。更重要的是它还可以帮助您制作自己的个人门户,...

    web网页批量上传图片代码

    开发文档-ASP.NET(C#):...支持浏览器:IE6,IE7,IE8,IE8(x64),IE9(x64),Firefox,Chrome,360安全浏览器,360极速浏览器,Maxthon1.x,Maxthon2.x,Maxthon3.x,QQ浏览器 支持图片格式:BMP,GIF,JPG,PNG,TIF

    php批量上传图片代码

    开发文档-ASP.NET(C#):...支持浏览器:IE6,IE7,IE8,IE8(x64),IE9(x64),Firefox,Chrome,360安全浏览器,360极速浏览器,Maxthon1.x,Maxthon2.x,Maxthon3.x,QQ浏览器 支持图片格式:BMP,GIF,JPG,PNG,TIF

    IE Plus 1.5 多国语言正式版

    IEPlus是根据微软IE Addon规范开发的一个增强性插件,它不仅弥补了系统自带的IE6和IE7在使用上的不便之处,通过极小的资源占用使得您的IE更易于使用,浏览效率更高。更重要的是它还可以帮助您制作自己的个人门户,...

    ueditor-baidu编辑器-前端主流富文本

    2. 命令插件层: 基于核心层开发command命令,命令之间相互独立。 3. 界面层: 为命令层提供用户使用界面。 满足不同层次用户的需求。 浏览器兼容 兼容Mozilla, MSIE, FireFox, Maxthon,Safari 和Chrome,实现...

    【大厂面试题】史上最详细的一线大厂前端面试题详解及其答案

    2、响应式开发剖析 3、页面渲染原理剖析 4、HTTPS工作流程 5、js防抖和节流剖析 6、js解决获取浏览器的唯一标识 7、js实现对数字自定义格式输出 8、js实战之全部替代一个子串为另一个子串 题目页面渲染原理剖析 题目...

    Net专版百度在线编辑器 V1.10

    2. 命令插件层: 基于核心层开发command命令,命令之间相互独立。 3. 界面层: 为命令层提供用户使用界面。 满足不同层次用户的需求。 该版本是 LyhHtmlEditor 的增强版,增强的范围有: 1、更新百度在线编辑器...

    asp.net大文件上传示例代码-access-gb2312

    支持浏览器:IE6,IE7,IE8,360安全浏览器,QQ浏览器,搜狐浏览器,Maxthon(遨游)浏览器1.X,Maxthon(傲游)浏览器2.x 支持文件大小:2G~8EB(1EB=102PB,1PB=1024TB,1TB=1024GB) 支持文件类型:任意类型 版权所有 2009-2012 ...

    php大文件上传示例代码-mysql-utf8

    支持浏览器:IE6,IE7,IE8,360安全浏览器,QQ浏览器,搜狐浏览器,Maxthon(遨游)浏览器1.X,Maxthon(傲游)浏览器2.x 支持文件大小:2G~8EB(1EB=102PB,1PB=1024TB,1TB=1024GB) 支持文件类型:任意类型 版权所有 2009-2012 ...

    JSP大文件上传控件-access-utf8

    支持浏览器:IE6,IE7,IE8,360安全浏览器,QQ浏览器,搜狐浏览器,Maxthon(遨游)浏览器1.X,Maxthon(傲游)浏览器2.x 支持文件大小:2G~8EB(1EB=102PB,1PB=1024TB,1TB=1024GB) 支持文件类型:任意类型 版权所有 2009-2012 ...

    web大文件上传代码

    支持浏览器:IE6,IE7,IE8,360安全浏览器,QQ浏览器,搜狐浏览器,Maxthon(遨游)浏览器1.X,Maxthon(傲游)浏览器2.x 支持文件大小:2G~8EB(1EB=102PB,1PB=1024TB,1TB=1024GB) 支持文件类型:任意类型 版权所有 2009-2012 ...

    Web 断点续传批量上传上传工具

    7. 免费提供JavaScript SDK包,方便您将插件快速集成到已有网站中。 支持语言:PHP,JSP,ASP,ASP.NET(C#),ASP.NET(VB),C++,VC,VC.NET,VB,VB.NET,C#,C#.NET,Delphi,C++Builder 支持平台:Visual Studio 6.0/2002/...

    Net专版百度在线编辑器 V1.2.1

    2. 命令插件层: 基于核心层开发command命令,命令之间相互独立。 3. 界面层: 为命令层提供用户使用界面。 满足不同层次用户的需求。 该版本是 LyhHtmlEditor 的增强版,增强的范围有: 1、更新百度在线编辑器...

Global site tag (gtag.js) - Google Analytics