如何制作傲游插件?

 

这两天对 Maxthon 的插件有点兴趣, 着手研究一下.   到网上搜拢了这些资料, 先做这个准备.

回头再好好考虑一下,有哪些应用可以做做....   欢迎大家跟我交流(可能谈不上交流, 因为本人在这方面还是很菜).

 

傲游插件开发参考(http://bbs.maxthon.cn/forumdisplay.php?fid=48)
I. 基本介绍


一、插件类型
傲游插件类型由文件类型和界面元素类型2个方面同时定义

(一)、插件文件类型
包括 Script(脚本)、HTML、COM、EXE(可执行文件)

1.Script
(1).可以是按钮类型,在点击按钮时执行脚本。
脚本可以采用 IE 支持的脚本语言编写,比如 javascript 及 vbscript。
此外 Maxthon 2.0 提供额外的 mscript 脚本执行方式,可以实现更强大插件功能。

示例
Example

wlgjx.com


Script 文件必须按以下形式写:
Script File must be written in the following format:
例I-1-(1)_1 Script 文件

wlgjx


引用
<script language= "Javascript" >
alert(document.lastModified);
</script>


被IE支持的任何有效语言都可在此使用.
The 'language' could be any valid language that IE supports.

(2).亦可以是侧边栏类型,在侧边栏显示插件指定的 HTML 档案。 wlgjx.com
HTML 档案可以采用 IE 支持的 HTML 语言格式编写。

2.HTML
是 Maxthon 2.0 新添加的插件类型,和 Script 侧边栏插件性质相同,主要分别是 Script 侧边栏插件在侧边栏显示,而 HTML 插件则以按钮型式在工具栏显示。

3.COM
可以采用任何 MSCOM 支持的语言编写,比如 C++,C#,Visual Basic,Delphi 等。
Maxthon 默认支持按钮类型,工具栏类型及侧边栏类型 COM 插件。
另外,COM 插件亦可以自行添加拟采用的插件显现方式,比如菜单或弹出窗口。

COM 对象必须实现 IMyIEClient 接口. 具体实现请看SDK包里的 IMyIE.h
COM object must implement IMyIEClient interface. Please refer to IMyIE.h

4.EXE
可以是任何可执行档案,以工具栏按钮形式在 Maxthon 显现。Maxthon 可以在执行 EXE 插件是提供参数,比如页面地址及 Maxthon 窗口的句柄等。

网络工具箱

 

任何win32可执行文件都可以做为插件. Maxthon将根据不同的用途传递各种参数, 但不保证参数按顺序传递.
Any win32 exe file could be used as plugin. Maxthon will send different parameters under different circumstance.

通用参数有:
General parameter:

a. "-h=handle" : handle是Maxthon主窗口的hWnd句柄, 为10进制数字.
a. "-h=handle" : handle is the Wnd handle of the Maxthon main window, decimalist.

(二)、界面元素类型
包括 Button(按钮)、SideBar(侧边栏)、Toolbar(工具栏) 及 Other(其他)

1.Button
插件会在插件栏添加一个按钮,点击按钮时会执行指定由脚本 (Script 插件),程序 (EXE 插件),DLL (COM 类型插件),指定的操作。Script 及 EXE类型按钮插件可以选择性在插件按钮添加下拉菜单。

2.SideBar
软件帮助wlgjx.com

插件会在侧边栏添加一个按钮,及在主菜 > 查看 > 侧边栏添加一个命令,在执行时会打开侧边栏及显示插件指定的 HTML 页面。

3.Toolbar
插件会添加一个工具栏,新添加的工具栏可以在主菜 > 查看 > 工具栏选择是否显示。

4.Other
插件没有固定显示接口,插件可以因应需要自行改变接口,比如改变菜单,添加按钮。


(三)、傲游插件类型支持情况
插件文件类型和界面元素类型的关系

表I-1-(3)_1

代码
类型__________Button___SideBar___Toolbar___Other
Script_________支持_____支持
HTML(仅2.x)___支持
EXE___________支持
COM(仅1.x)____支持_____支持______支持_____支持
二、插件档案

傲游插件档案一般包含plugin.ini、运行文件、图标、config.html

(一)、plugin.ini
必须

说明
定义插件的各项属性

示例
例I-2-(1)_1 全部

引用
[General]

;必须,定义插件的主要属性

Name=
;插件名称

Author=
;作者名字

Version=
;版本号

ModuleType=
;可以是 Script,HTML,COM 或 EXE

FileName=
;可以是 HTML 档案 (Script 及 HTML 插件),DLL 档案 (COM 插件),或 EXE 档案 (EXE 插件)

Comments=
;在插件选项或按钮的工具提示所显示的描述 wlgjx

Type=
;可以是 M2Plugin_BUTTON,M2Plugin_SIDEBAR,M2Plugin_Toolbar 或 M2Plugin_Other

IdealSize=
;指定插件在接口显示的大小,比如 “120 20”(阔度 高度,适用于 HTML 插件)

IdealSizeVertical=
;选摘性,指定当工具栏在垂直放置的插件接口显示的大小,比如 “120 20”(阔度 高度,适用于 HTML 插件)

Icon=
;在按钮或侧边栏插件显示的图标 (适用于按钮及侧边栏插件)

HotIcon=
;当鼠标移到插件按钮上时显示的图标 (适用于按钮插件)

CLSID=
;COM 插件的 CLSID (适用于 COM 插件)
[MyIE2Buttons]
;可选,定义按钮类型插件的下拉菜单,适用于 Script 及 EXE 类型插件

Count=
;插件下拉菜单项目的数量

Name1=
;第一个下拉菜单项目的名称,如此类推

FileName1=
;提供第一个下拉菜单项目应执行的代码的档案,如此类推


例I-2-(1)_2.1 Script 类型 按钮

引用
[General] 常用软件教程wlgjx.com
Name=LastModified
Author=bloodchen
Version=1.0
ModuleType=SCRIPT
FileName=LastModified.htm
Comments=See last modified date of current page
Type=M2Plugin_BUTTON
HotIcon=hot.ico
工具箱wlgjx.com

Icon=cold.ico


例I-2-(1)_2.2 Script 类型 侧边栏

引用
[General]
Name=Calculator++ 1.2
Author=SiC
Version=1.2
ModuleType=SCRIPT
常用软件教程wlgjx.com

FileName=calculator.htm
Comments=Scientific programmable calculator.
Type=M2Plugin_Sidebar
HotIcon=cpp.ico
Icon=cpp.ico


例I-2-(1)_3 EXE 类型

引用
[General] 复制于wlgjx.com
Name=ExeButton
Author=BloodChen
Version=1.0
ModuleType=EXE
FileName=abc.exe
Comments=Exe type Button
Type=M2Plugin_BUTTON
Icon=p.ico

软件帮助wlgjx.com

例I-2-(1)_4 COM 类型

引用
[General]
Name=ComButton
Author=bloodchen
Version=1.0
ModuleType=COM
FileName=ComButton.dll
软件帮助wlgjx.com

CLSID={96E78121-9FF2-466D-B6CD-4038CAC1BB79}
Comments=Com type 'Button'
Type=M2Plugin_BUTTON
HotIcon=hot.ico
Icon=cold.ico

 

(二)、运行文件
必须

说明
指定插件需要执行的操作,或需要显示的内容
注意 须是傲游插件支持的文件类型

(三)、图标
适用于按钮类型及侧边栏类型插件, COM 或 EXE 插件可以用其内含图标
注意 须是ICO格式的图标文件

(四)、config.html
可选

应用于 Script 及 HTML 类型插件的设置窗口

 

II. 语言参考
一、属性

(一)、扩充属性

1. max_security_id
(1). Script 类型
可以在你的 script 文件中这样写:"var security_id=%max_security_id", 然后你就可以在你的script 文件中使用security_id了.

(2). HTML 类型 和 Script 类型 侧边栏
Maxthon将会创建一个 "max.src" 文件在相应插件的文件夹中, 它里面包含了 "max_security_id=id". 你可以在你的HTML文件中把它包含进去以便获取ID. 网络工具箱

2. max_language_id
可以取得用户当前所选择的语言.

说明
Remarks

此属性将返回傲游当前界面语言代码。
This property will return current language id of Maxthon UI.

(1). 1.x 版本的语言代码

表II-1-(1)_1.1 1.x 版本的语言代码

代码
代码__名称
0000 英文 English
0001 中文简体 Chinese
0005 中文繁体 Chinese Traditional
网络工具箱

(2). 2.x 版本的语言代码

表II-1-(1)_1.2 2.x 版本的语言代码

引用
代码____名称
0x0409 英文 English
0x0804 中文简体 Chinese
0x0404 中文繁体 Chinese Traditional


语言代码可以在 这 找到
language id can be found at here

示例
Example 工具箱wlgjx.com

例II-1-(1)_1 获取语言代码

引用
alert('Language ID=' + external.max_language_id);


3. cur_sel 和 current_tab
返回当前激活标签的序号(整数).
return the number of current active tab as a integer.

如果没有标签被打开 将返回 null
null will be returned if there is no tab opened.

说明 复制于wlgjx.com
Remarks

傲游2.x 中使用 current_tab 替换之前傲游1.x 中使用的 cur_sel 因为后者名称从字面上不易理解
current_tab is introduced in Maxthon 2.0 as a replacement of cur_sel because the old property name is too obscure to understand.

示例
Example

例II-1-(1)_2.1 1.x中获取激活标签的序号

引用
alert('Current Tab Index=' + external.cur_sel);
wlgjx.com


例II-1-(1)_2.2 2.x中获取激活标签的序号

引用
alert('Current Tab Index=' + external.current_tab);

(kukukuan:对此有疑义,2.x中external.cur_sel仍然可用,而external.current_tab显示为未定义)
to kukukuan: 官方API抄来的 不知道会不会改 -__-

4. tab_count
将返回当前打开的标签总数(整数).
this property will return total number of tabs as a integer.

示例
软件帮助wlgjx.com


Example

例II-1-(1)_3 获取标签总数

引用
alert('Tabs Count=' + external.tab_count);

二、方法

(一)、一般方法

1. addFavorite
该方法将询问用户是否添加 url 到收藏夹, 可以使用 title 给该链接命名.

addFavorite(url [, title])

参数
Parameters

url
必选项。字符串, 页面地址
Required. string, The url to add.

title 网络工具箱
可选项。字符串, 页面标题
Optional. string, The title of the url.

示例
Example

例II-2-(1)_1.1 添加网址到收藏夹

引用
external.addFavorite("http://www.maxthon.com");


例II-2-(1)_1.2 添加网址和标题到收藏夹 常用软件教程wlgjx.com

引用
external.addFavorite( "http://www.maxthon.com","Maxthon Official Site" );


2. addProxy
添加代理到 Maxthon 的代理服务器列表中

(1). 1.x 版本

addProxy(name, address, speed, type)

参数
工具箱wlgjx.com


Parameters

name
必选项。代理名称
Required. The display name of proxy.

address
必选项。代理地址: <地址>:<端口>
Required. The IP address or Domain name of proxy.

speed
必选项。代理速度: 0 无效, 1 很慢,2 较慢,3 一般,4 较快,5 很快
Required.

type
必选项。代理类型: 1 HTTP 和 FTP 代理,0 其他代理类型
Required.

示例
Example
网络工具箱

 

例II-2-(1)_2.1 添加代理到 Maxthon 1.x

引用
external.addProxy("My proxy", "192.168.1.0:8080", 3, 0);


(2). 2.x 版本

addProxy(name, address, type) 网络工具箱

参数
Parameters

name
必选项。代理名称
Required. The display name of proxy.

address
必选项。代理地址: <地址>:<端口>
Required. The IP address or Domain name of proxy.

type
必选项。代理类型: 0 = HTTP 代理, 1 = Socks 4a 代理, 2 = Socks 5 代理
Required. A number indicates the speed rating of proxy. 0 = HTTP Proxy, 1 = Socks 4a Proxy, 2 = Socks 5 Proxy


示例
Example
网络工具箱

 

例II-2-(1)_2.2 添加代理到 Maxthon 2.x

引用
external.addProxy("My proxy", "192.168.1.0:8080", 0);


3. addFilter
添加过滤规则到 Maxthon 的过滤列表中。

addFilter(url_mask [, type]) 软件帮助wlgjx.com

参数
Parameters

url_mask
必选项。字符串或正则表达式。过滤地址匹配规则
Required. String. Address mask to match blocked addresses. Supports Regular Expression.

type
可选项。整数。过滤类型
Optional. Integer. A number indicates which Filter list to add.

(a). 1.x 版本
0 = 网页内容过滤,1 = 弹出窗口过滤
0 = Content Filter, 1 = Popup Filter

(b). 2.x 版本
0 = 弹出窗口过滤,1 = 网页内容过滤
软件帮助wlgjx.com

0 = Popup Filter, 1 = Content Filter

示例
Example

例II-2-(1)_3 添加过滤到 Maxthon

引用
external.addFilter("*/ad/*", 0);


4. m2_run_cmd
软件帮助wlgjx.com


该函数将调用一个 Maxthon 命令.
This function will call a Maxthon's command with the ID.

m2_run_cmd( security_id, command_id)

参数
Parameters

security_id
必选项。傲游安全ID
Required. Maxthon's Security ID.

command_id
必选项。整数。傲游命令编号
Required. Integer. The internal command ID of Maxthon.

说明
Remarks

这些命令的编号可以在语言文件 language.ini 里面找到. wlgjx
The id of every command could be found in the language file.

示例
Example

例II-2-(1)_4 新建一个空白页
Open a Blank Page

引用
external.m2_run_cmd(%max_security_id, 32772);


5. m2_search_text
返回 Maxthon 搜索栏中的文本.
复制于wlgjx.com

This function will return the text in Maxthon's Search Box as a string.

m2_search_text(security_id)

参数
Parameters

security_id
必选项。傲游安全ID
Required. Maxthon's Security ID.

示例
Example

例II-2-(1)_5 获取搜索关键词

引用
alert('Search Text =' + external.m2_search_text(%max_security_id));
软件帮助wlgjx.com

6. m2_plugin_folder
该函数将返回插件文件夹的本地路径.
This function will return the local path of the plugin.

m2_plugin_folder(security_id, plugin_name)

参数
Parameters

security_id
必选项。傲游安全ID
Required. Maxthon's Security ID.

plugin_name
必选项。插件名称,即 plugin.ini 中 General 部分的 Name 值。
Required. The name of the plugin as defined in plugin.ini.

要求
Requirements 复制于wlgjx.com

Maxthon Version 1.2+

示例
Example

例II-2-(1)_6 获取 ViewPage 的文件夹路径

引用
alert( "Plugin Path = " + external.m2_plugin_folder(%max_security_id, "ViewPage") );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值