构建 firefox 插件的脚本

15 篇文章 0 订阅
2 篇文章 0 订阅

初步学习了 Firefox 插件的编写,通过脚本来重新构建修改后的插件,这样将有效地提高开发效率。这里以插件的目录名称为 插件文件名称,将脚本放到插件的文件夹里执行就可以了。脚本的功能见源码吧。


#!/bin/bash

# check 7z
CHCKE_7Z=`which 7z`
if [ "uu$CHCKE_7Z" == "uu"  ]
then
    echo 7z is not found.
    echo Please install 7z first.
    exit 77
fi
#
BASE_DIR=`pwd`
PACKAGE=`basename $BASE_DIR`

# delete prior xpi
if [ -f "$BASE_DIR/$PACKAGE.xpi"  ]
then
     rm -v "$BASE_DIR/$PACKAGE.xpi"
fi

# clean up
BACKUPS=`find $BASE_DIR -name "*~"`
if [ "xx$BACKUPS" != "xx" ]
then
    rm -v $BACKUPS
fi

#
mkdir -p $BASE_DIR/build/chrome
cd $BASE_DIR/build/chrome
7z a -tzip "$PACKAGE.jar" $BASE_DIR/chrome/* -r -mx=0

#
cd $BASE_DIR
cp install.* $BASE_DIR/build

#
cd $BASE_DIR/build
7z a -tzip "$BASE_DIR/$PACKAGE.xpi" * -r -mx=9

#
cd $BASE_DIR
rm -rvf $BASE_DIR/build

在 Windows 构建 Firefox Extension 的话,用批处理脚本比较合适。因为安装了 7z 和一些 Unix 命令工具,其实与Linux版本差别并不大。


@echo off

REM
Setlocal ENABLEDELAYEDEXPANSION

7z --help 2>NUL 1>NUL

if ERRORLEVEL 1 (
  echo 7z is not found.
  echo Please install 7z first.

  goto END
)

set BaseDir=%~dp0
echo Current Directory : %BaseDir%

for %%i in (.) do set basename=%%~ni%%~xi
echo Extension Name : %basename%

if exist %basename%.xpi rm -vf %basename%.xpi

mkdir %BaseDir%build\chrome
cd %BaseDir%build\chrome

7z a -tzip "%basename%.jar" %BaseDir%chrome\* -r -mx=0


REM
cd %BaseDir%
cp -vf install.rdf chrome.manifest %BaseDir%build
if exist defaults cp -rvf defaults %BaseDir%build
if exist locale cp -rvf locale %BaseDir%build
if exist skin cp -rvf skin %BaseDir%build

REM
cd %BaseDir%build
7z a -tzip "%BaseDir%%basename%.xpi" * -r -mx=9

REM
cd %BaseDir%
rm -rvf %BaseDir%build

:END


通过使用少量的JavaScript脚本,自定义网页显示方式或表现方式。Greasemonkey是Mozilla Firefox的一个附加组件。它让用户安装一些脚本使大部分HTML为主的网页于用户端直接改变得更方便易用。随着Greasemonkey脚本常驻于浏览器,每次随着目的网页打开而自动做修改,使得运行脚本的用户印象深刻地享受其固定便利性。 技术明细: 大部分Greasemonkey用户脚本都是自行撰写,使用对某网站专用的JavaScript代码,通过文档对象模型(DOM)接口对网页内容做操作。userscripts.org维护了个Greasemonkey数据库。该数据库描述哪个网址网页对应到哪个脚本。当用户加载匹配的网页,Greasemonkey便调用相关的脚本,而该脚本便根据脚本内容改变网页的内容。Greasemonkey脚本亦能通过非网域绑定的XMLHTTP要求来查询外部HTTP资源。Greasemonkey亦遵循某用户名.user.js的格式,这让当该特定用户拜访时Greasemonkey可自动侦测并提供安装选项。除了JavaScript代码,Greasemonkey脚本包括有限可选用后数据集。该后数据集描述了脚本名称、脚本描述、网址用来区分同名脚本的地址空间、以及原本该脚本为哪些网址撰写的列表。Greasefire扩展:同Greasemonkey扩展配合使用,自动显示在userscripts.org的脚本库中是否存在可以在当前正在浏览网站上使用的脚本,如果存在Greasemonkey的猴头图标背景就会变为彩色的。右键点击猴头图标,最上面一行就是打开当前网站可用脚本列表的选项。Platypus(platypus.mozdev.org)附加组件可让用户可以编辑网页(删除或者移动某碍眼的部分)。Platypus随后将结果存成常驻的Greasemonkey脚本。 典型的脚本: 用户群已发展大量的脚本,以下是其中的一些应用:调整Gmail让Google Reader内嵌,因而提供RSS新闻订阅的选项。当联机浏览某本书时同时显示对手网站同本书价钱。去除来自某些站的广告,包括弹出视窗与Google文字广告。改变网页的版面,包括原本该网页作者未考虑到的元素大小与浏览器画面大小。自动完成窗体。浏览某些布告栏网站自动过滤特定的发帖人。增删网页上的某些功能。让用户从某些视频站点如Google Video以及YouTube存下FLV视频文件。从现行网页找寻任何RSS新闻订阅,并将它们显示在可扩展、漂浮于网页上的皮肤里。突破百度贴吧对言论内容的管制,辅助发表繁体汉字及不受贴吧服务器支持的字符,或者将文字转换为图片发表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值