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]
Maxthon 插件 Maxthon 插件 ViewPage 1.31 LunarDate 1.3.0 WAP SideBar 1.1.1 FreeMemory 1.2 计算器++ 2.0 沪江小D 1.0 立即下载

相关推荐

Delphi仿傲游Maxthon多页浏览器源代码

Delphi仿傲游Maxthon多页浏览器源代码.rarDelphi仿傲游Maxthon多页浏览器源代码.rarDelphi仿傲游Maxthon多页浏览器源代码.rarDelphi仿傲游Maxthon多页浏览器源代码.rarDelphi仿傲游Maxthon多页浏览器源代码.rar

Maxthon:三款超酷插件(转)

Maxthon:三款超酷插件(转)   MyIE2(目前已经更名为Maxthon)之所以被广大网民喜爱,有一个非常重要的原因就是它拥有众多优秀插件的支持。MyIE2的插件大都是以压缩包的形式发布的,下载后直接解压到MyIE...

cuemes08808的博客 405

本域内网页数据的提取与导入(类似MAXTHON的智能填表)

NULL 博文链接:https://wangzejie.iteye.com/blog/637544

如何制作傲游插件?

 这两天对 Maxthon 的插件有点兴趣, 着手研究一下.   到网上搜拢了这些资料, 先做这个准备. 回头再好好考虑一下,有哪些应用可以做做....   欢迎大家跟我交流(可能谈不上交流, 因为本人在这方面还是很菜). 傲游插件开发参考(http://bbs.maxthon.cn/forumdisplay.php?fid=48)I. 基本介绍 一、插件类型傲游插件类型由

一个人的软件艺术 1433

AnyLogic 8.8.3 最新版安装指南:从下载到配置的完整流程(附Java环境设置技巧)

本文提供了AnyLogic 8.8.3最新版从下载到配置的完整安装指南,重点解决了跨平台(Windows、macOS、Linux)部署中的常见问题。核心内容详细讲解了Java开发环境(JDK)的精准配置技巧,包括版本选择、系统环境变量设置与验证,确保为仿真建模工作奠定稳固基础。

efc1234567的博客 762

避坑指南:RK3588视频编码与SRT推流实战中,我遇到的5个典型问题及解决方案

本文深度解析RK3588平台视频编码与SRT推流实战中的五个典型问题,包括MIPI摄像头内存对齐、多线程数据传递、FFmpeg时间戳设置、SRT连接参数调优及系统资源监控。提供具体解决方案和优化技巧,帮助开发者高效实现实时视频网络传输。

weixin_28718793的博客 324

Maxthon侧边栏插件--上网小助手

我觉得Maxthon真是超好用而且持续不断改进,从03年开始用MyIE一直到现在,真是Maxthon的fans了:)不知道园子里是不是也老多Maxthon的粉丝 琢磨琢磨就写了一个Maxthond 的一个插件,挺简单的一个,其实就是做了个HTML页面,权当娱乐了,截图如下: 转载于:https://www.cnblogs.com/s1ihome/archive/2009/03/21/1...

weixin_30877755的博客 101

银河飞腾FT-M6678 DSP开发初体验:从仿真器连接到第一个网络程序(CCS5.5+FT-EMU560实战)

本文详细介绍了银河飞腾FT-M6678 DSP开发环境的搭建过程,包括CCS5.5开发环境的配置、FT-EMU560仿真器的连接与设置,以及关键模块如网络驱动的国产化替换。通过实战案例,帮助开发者快速掌握国产DSP的开发流程,实现网络通信功能。

weixin_30919429的博客 555

新近开发IE、Maxthon插件内部测试中

正式版将在测试完成后发布

wangjack的专栏 627

STM32F407+HAL库+W5500实现TCP通讯 个人项目总结

推荐阅读此博客 cv即可成功首先需要一个可以进行串口调试的工程,方便进行调试。1.在W5500官网移植库文件重点是Ethernet这个文件夹将里面的 socket.c,socket.h,wizchip_conf.c,wizchip_conf.h,还有根据W5500文件夹里的w5500.c和w5500.h移植到自己的工程里面。然后再创建一个.c和.h文件 我的叫w5500_port_hal.c 和w5500_port_hal.h 记得将.h文件链接到工程里。

a234abr的博客 2252

IEC61850规约客户端软件开发实战(第六章)

IEC 61850标准中的GOOSE(Generic Object Oriented Substation Event,面向通用对象的变电站事件)功能是变电站自动化系统的核心通信机制,主要用于实现智能电子设备(IED)间高可靠性、低延时的实时信号传输。本章简述其核心功能与技术特点。

半青年的博客 1780

Maxthon的“进入编辑模式”插件

今天写了一个Maxthon的“进入编辑模式”插件,可以用来破解防复制的网页。插件机制真是爽呀,看来我的《网页复制大师》要彻底退休了,呵呵。点此下载:[url]http://www.blogjava.net/Files/huanzhugege/editit.zip[/url] maxhon已经收录本插件:[url]http://addons.maxthon.com/post/2...

weixin_33938733的博客 82

Vue - 快速入门,这一套就够了!(Vue core + 案例 + 效果演示)

前置条件:掌握 HTML、CSS、JavaScript、AJAX.工具:VsCode.插件:Live Server(浏览器实时预览)Ps:建议都提前下载下来,没网的时候也能用.

CYK_byte的博客 4万+

阶段性总结--各浏览器下插件开发(未完待续.)

前段时间一直在做各浏览器下插件开发的工作,主要包括:chrome、firefox、sogouExplore、maxthon3和opera这几款浏览器、其他的浏览器基本都是chromium和trident加个壳子,而且开放的API也是从chrome上继承过来的,虽然让人觉得比较恶心,但是确实省了很大一部分的开发时间。 插件主要包括三大块: popup页面:主要进行登录和显示详情的页面 c...

weixin_30713953的博客 113

4、硬件工程师笔试面试知识器件篇——电阻(2025版本)

本文系统介绍了电阻的基础知识与应用。首先阐述了电阻的定义、工作原理及类型(固定/可变电阻),详细说明了常见电阻材料(碳膜、金属膜、线绕等)的特性与标记方法。重点分析了电阻在电路设计中的关键参数:功率计算需考虑1.5-2倍安全裕度,温度系数影响电路稳定性。文章还对比了不同封装形式(轴向/贴片/功率封装等)的适用场景,特别强调高功率电路需选择专用封装并做好散热设计。最后指出电路仿真可优化电阻选择,并列举了相关电子元件在设计中同样需要仿真验证。全文为硬件工程师提供了电阻选型的实用指导。

XU157303764的博客 5213

Python 爬虫实战:雪球用户数据爬取与投资行为分析(含 API 签名算法解析)

雪球作为国内领先的投资者社区,拥有丰富的用户数据和投资信息。通过爬取雪球用户数据并进行分析,我们可以深入了解用户的持仓偏好、交易行为和投资策略,为企业和投资者提供有价值的市场洞察。

yansideyucsdn的博客 2248

自己看

想用C#做一个Maxthon按钮插件,Maxthon按钮插件的配置文件plugin.ini如下。 复制  保存[General]Name=ConsoleAppAuthor=阿良Version=1.0ModuleType=EXEFileName=ConsoleApp.exeComments=Exe type ButtonType=M

如是所来的专栏 1284

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

给网页赋值参考信息

想用C#做一个Maxthon按钮插件,Maxthon按钮插件的配置文件plugin.ini如下。 复制  保存[General]Name=ConsoleAppAuthor=阿良Version=1.0ModuleType=EXEFileName=ConsoleApp.exeComments=Exe type ButtonType=M

如是所来的专栏 1759

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

网页页面分析工具viewpage,PowerBand

web开发的页面分析工具。viewpage1.31 http://viewpage.maxthon.com/scriptver.htm 下载文件后,把文件copy到maxthon目录的plugin目录里。在maxthon的选项-maxthon选项-插件viewpage打叉,重启maxthon.就会有的。没有的话,在帮助旁边点右键,选扩展插件栏。"PowerBand是一个Inte

xueyang214的专栏 1504

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

关于通用软件扩展方案的设想

2007年04月16日 10:34:00 关于通用软件扩展方案的设想几天前,我陪朋友到北京Maxthon做客,话题自然离不开Maxthon。Maxthon的成功点之一是"PlugIn",如果一个软件能够有几百个插件,这个软件的底蕴自然就会很"厚",因此,开发具有插件机制的软件系统可以说是开发者向往的目标。谈话间我隐约感觉一个问题变得豁然开朗,回来后,我开始尝试"修改"Maxthon,所谓

秦梦瑶的专栏 504

终于可以生成IE的mht格式了

经过几个月的研究,终于破解了IE保存网页的mht格式。为此,我特别做了一个maxthon的插件,用该插件保存的网页是标准的mht格式,并且与微软IE生成的格式100%兼容,并且能保存IE不能保存的网页。需要的朋友下载试用:http://forum.maxthon.com/forum/index.php?showtopic=17751 

2584

学习Python,编写了个网站

这段时间学习了一下python,作为练习,编写了个网站: 论坛表情即时贴 思路来源于以前编写的一个Maxthon插件:论坛表情扩展2 页面风格沿用了SkyShow影的 "论坛表情即时贴" 转载于:https://www.cnblogs.com/Pharaoh/archive/2009/06/11/1501614.html...

weixin_30888707的博客 84

Firefoxed

30个插件之后,送使了5年的Maxthon上路。(用户社区是拼不过开发社区的,一路走好Maxthon) ====Extensions==== Add bookmark here 0.5.7 Answers 2.1.15 Del.icio.us1.2 DOM inspector 1.8.1 Download Statusbar 0.9.4.5 FireBug 0.4.1 FlashGot 0.5.9...

Tanner 152

各种浏览器审查、监听http头工具介绍

各种浏览器审查、监听http头工具介绍  最近在研究http协议,浏览器缓存,接触到各种浏览器的各种审查、资源提取、监听工具。觉得这些工具(插件)挺好用,特意写篇博文分享下。 这些工具对于web前端程序员来说应该是再熟悉不过了,前端都是调试审查css布局定位之类,而对于后台方面,一般phper能用到的时候也少,一般是查缓存,做缓存功能等需要查看http头部,还有ajax监听后台响应

pi9nc的专栏 3993
上一篇: 高亮显示与拼音汉字互转及文本相似度匹配
下一篇: jms与ActiveMQ实践与应用
hellohank
博客等级 码龄19年 0粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值