『Firefox 扩展』TrayHotKey
扩展名:TrayHotKey
功能:添加一个系统热键(老板键)用来显示或隐藏窗口;可修改窗口的不透明度。
支持:Firefox4b8-*
已知 Bug:scale 元素的显示有点问题。原因未知,猜想可能是 Firefox4 本身的 Bug。但该 Bug 不影响正常使用。Fx4b11 已修复
下载地址:TrayHotKey
扩展名:TrayHotKey
功能:添加一个系统热键(老板键)用来显示或隐藏窗口;可修改窗口的不透明度。
支持:Firefox4b8-*
已知 Bug:scale 元素的显示有点问题。原因未知,猜想可能是 Firefox4 本身的 Bug。但该 Bug 不影响正常使用。Fx4b11 已修复
下载地址:TrayHotKey
DNS Proxy
主要功能:解决 DNS 污染及使用其他 DNS 时导致访问使用 cdn 技术的网站过慢问题
原理:通过白名单(dnsWhiteList.domains)控制受 DNS 污染的域名正常解析(使用 tcp 协议进行查询,可以防止 DNS 污染)、通过黑名单(dnsBlackList.domains)控制使用了 cdn 技术的网站直接使用 ISP 的 DNS 服务器进行查询。
使用方法:
功能:在地址栏左边的站点图标右键菜单中添加几个实用的菜单项。
来源:本脚本根据 mozest 论坛用户“ithinc”的 faviconContextMenu XUL 脚本并作出一些修改
安装方法:与一般的 CSS 样式的使用方法一致。
#page-proxy-stack { -moz-binding: url("data:text/xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cgo8YmluZGluZ3MgeG1sbnM9Imh0dHA6Ly93d3cubW96aWxsYS5vcmcveGJsIgogICAgICAgICAgeG1sbnM6eGJsPSJodHRwOi8vd3d3Lm1vemlsbGEub3JnL3hibCIKICAgICAgICAgIHhtbG5zOnh1bD0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9rZXltYXN0ZXIvZ2F0ZWtlZXBlci90aGVyZS5pcy5vbmx5Lnh1bCI+CiAgICA8YmluZGluZyBpZD0icGFnZS1wcm94eS1wbHVnIj4KICAgICAgICA8Y29udGVudCBjb250ZXh0PSJfY2hpbGQiPgogICAgICAgICAgICA8eHVsOm1lbnVwb3B1cD4KICAgICAgICAgICAgICAgIDx4dWw6bWVudWl0ZW0gbGFiZWw9IiYjMjgxNjU7JiMzMTM1NDsmIzIyMzIwOyYjMjIzMzY7JiMyNjYzOTsiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ubW91c2Vkb3duPSJldmVudC5wcmV2ZW50RGVmYXVsdCgpO2V2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25jbGljaz0iZXZlbnQucHJldmVudERlZmF1bHQoKTtldmVudC5zdG9wUHJvcGFnYXRpb24oKTsiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uY29tbWFuZD0idGhpcy5wYXJlbnROb2RlLnBhcmVudE5vZGUuZG8oJ2NsZWFyX3VybCcpOyIgLz4KICAgICAgICAgICAgICAgIDx4dWw6bWVudWl0ZW0gbGFiZWw9IiYjMjI3OTc7JiMyMTA0NjsmIzI0NDAzOyYjMjEwNjk7JiMyNjYzMTsmIzMxNjE0OyYjMzkwMjk7JiMyMjMyMDsmIzIyMzM2OyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25tb3VzZWRvd249ImV2ZW50LnByZXZlbnREZWZhdWx0KCk7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmNsaWNrPSJldmVudC5wcmV2ZW50RGVmYXVsdCgpO2V2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25jb21tYW5kPSJ0aGlzLnBhcmVudE5vZGUucGFyZW50Tm9kZS5kbygnY29weV91cmwnKTsiIC8+CiAgICAgICAgICAgICAgICA8eHVsOm1lbnVpdGVtIGxhYmVsPSImIzMxODk2OyYjMzYxNDg7JiMyNDE4MjsmIzIyMzEyOyYjMjQ0MDM7JiMyMTA2OTsmIzI2NjMxOyYjMzE2MTQ7JiMzOTAyOTsmIzI1MTcxOyYjMjQzMjA7IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbm1vdXNlZG93bj0iZXZlbnQucHJldmVudERlZmF1bHQoKTtldmVudC5zdG9wUHJvcGFnYXRpb24oKTsiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uY2xpY2s9ImV2ZW50LnByZXZlbnREZWZhdWx0KCk7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmNvbW1hbmQ9InRoaXMucGFyZW50Tm9kZS5wYXJlbnROb2RlLmRvKCdwYXN0ZWFuZGdvX3VybF9jdXJyZW50Jyk7IiAvPgogICAgICAgICAgICAgICAgPHh1bDptZW51aXRlbSBsYWJlbD0iJiMzMTg5NjsmIzM2MTQ4OyYjMjQxODI7JiMyMjMxMjsmIzI2MDMyOyYjMjY2MzE7JiMzMTYxNDsmIzM5MDI5OyYjMjUxNzE7JiMyNDMyMDsmIzY1Mjg4OyYjMjEwNjk7JiMyMTQ4ODsmIzY1Mjg5OyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25tb3VzZWRvd249ImV2ZW50LnByZXZlbnREZWZhdWx0KCk7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmNsaWNrPSJldmVudC5wcmV2ZW50RGVmYXVsdCgpO2V2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25jb21tYW5kPSJ0aGlzLnBhcmVudE5vZGUucGFyZW50Tm9kZS5kbygncGFzdGVhbmRnb191cmxfdGFiX2ZvcmVncm91bmQnKTsiIC8+CiAgICAgICAgICAgICAgICA8eHVsOm1lbnVpdGVtIGxhYmVsPSImIzMxODk2OyYjMzYxNDg7JiMyNDE4MjsmIzIyMzEyOyYjMjYwMzI7JiMyNjYzMTsmIzMxNjE0OyYjMzkwMjk7JiMyNTE3MTsmIzI0MzIwOyYjNjUyODg7JiMyMTUxODsmIzIxNDg4OyYjNjUyODk7IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbm1vdXNlZG93bj0iZXZlbnQucHJldmVudERlZmF1bHQoKTtldmVudC5zdG9wUHJvcGFnYXRpb24oKTsiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uY2xpY2s9ImV2ZW50LnByZXZlbnREZWZhdWx0KCk7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmNvbW1hbmQ9InRoaXMucGFyZW50Tm9kZS5wYXJlbnROb2RlLmRvKCdwYXN0ZWFuZGdvX3VybF90YWJfYmFja2dyb3VuZCcpOyIgLz4KICAgICAgICAgICAgICAgIDx4dWw6bWVudXNlcGFyYXRvciAvPgogICAgICAgICAgICAgICAgPHh1bDptZW51aXRlbSBsYWJlbD0iJiMyMjc5NzsmIzIxMDQ2OyYjMzE0NDk7JiMyODg1NzsmIzIyMjcwOyYjMjY2MzE7JiMyMjMyMDsmIzIyMzM2OyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25tb3VzZWRvd249ImV2ZW50LnByZXZlbnREZWZhdWx0KCk7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmNsaWNrPSJldmVudC5wcmV2ZW50RGVmYXVsdCgpO2V2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25jb21tYW5kPSJ0aGlzLnBhcmVudE5vZGUucGFyZW50Tm9kZS5kbygnY29weV9mYXZpY29uX3VybCcpOyIgLz4KICAgICAgICAgICAgICAgIDx4dWw6bWVudWl0ZW0gbGFiZWw9IiYjMjI3OTc7JiMyMTA0NjsmIzMxNDQ5OyYjMjg4NTc7JiMyMjI3MDsmIzI2NjMxOyYjNjUyODg7YmFzZTY0ICYjMzI1MzQ7JiMzMDcyMTsmIzY1Mjg5OyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25tb3VzZWRvd249ImV2ZW50LnByZXZlbnREZWZhdWx0KCk7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmNsaWNrPSJldmVudC5wcmV2ZW50RGVmYXVsdCgpO2V2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25jb21tYW5kPSJ0aGlzLnBhcmVudE5vZGUucGFyZW50Tm9kZS5kbygnY29weV9mYXZpY29uX2Jhc2U2NCcpOyIgLz4KICAgICAgICAgICAgICAgIDx4dWw6bWVudWl0ZW0gbGFiZWw9IiYjMjA0NDU7JiMyMzM4NDsmIzMxNDQ5OyYjMjg4NTc7JiMyMjI3MDsmIzI2NjMxOyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25tb3VzZWRvd249ImV2ZW50LnByZXZlbnREZWZhdWx0KCk7ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmNsaWNrPSJldmVudC5wcmV2ZW50RGVmYXVsdCgpO2V2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25jb21tYW5kPSJ0aGlzLnBhcmVudE5vZGUucGFyZW50Tm9kZS5kbygnc2F2ZV9mYXZpY29uJyk7IiAvPgogICAgICAgICAgICA8L3h1bDptZW51cG9wdXA+CiAgICAgICAgICAgIDxjaGlsZHJlbiAvPgogICAgICAgIDwvY29udGVudD4KICAgICAgICA8aW1wbGVtZW50YXRpb24+CiAgICAgICAgICAgIDxtZXRob2QgbmFtZT0iZG8iPgogICAgICAgICAgICAgICAgPHBhcmFtZXRlciBuYW1lPSJjb21tYW5kIiAvPgogICAgICAgICAgICAgICAgPGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY29tbWFuZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2xlYXJfdXJsJyA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdVUkxCYXIudmFsdWUgPSAiIikgfHwgZ1VSTEJhci5mb2N1cygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29weV91cmwnIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVG9DbGlwYm9hcmQoZ0Jyb3dzZXIuY3VycmVudFVSSS5zcGVjKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Bhc3RlYW5kZ29fdXJsX2N1cnJlbnQnIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuVUlMaW5rSW4ocmVhZEZyb21DbGlwYm9hcmQoKSwgImN1cnJlbnQiLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Bhc3RlYW5kZ29fdXJsX3RhYl9mb3JlZ3JvdW5kJyA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlblVJTGlua0luKHJlYWRGcm9tQ2xpcGJvYXJkKCksICJ0YWIiLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Bhc3RlYW5kZ29fdXJsX3RhYl9iYWNrZ3JvdW5kJyA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0Jyb3dzZXIubG9hZE9uZVRhYihyZWFkRnJvbUNsaXBib2FyZCgpLCBudWxsLCBudWxsLCBudWxsLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvcHlfZmF2aWNvbl91cmwnIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlVG9DbGlwYm9hcmQoZ1Byb3h5RmF2SWNvbi5zcmMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29weV9mYXZpY29uX2Jhc2U2NCcgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9CYXNlNjQoZ1Byb3h5RmF2SWNvbi5zcmMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2F2ZV9mYXZpY29uJyA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlblVJTGlua0luKGdQcm94eUZhdkljb24uc3JjLCAic2F2ZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgXV0+CiAgICAgICAgICAgICAgICA8L2JvZHk+CiAgICAgICAgICAgIDwvbWV0aG9kPgogICAgICAgICAgICA8bWV0aG9kIG5hbWU9IndyaXRlVG9DbGlwYm9hcmQiPgogICAgICAgICAgICAgICAgPHBhcmFtZXRlciBuYW1lPSJzdHJpbmciIC8+CiAgICAgICAgICAgICAgICA8Ym9keT4KICAgICAgICAgICAgICAgICAgICA8IVtDREFUQVsKICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50cy5jbGFzc2VzWyJAbW96aWxsYS5vcmcvd2lkZ2V0L2NsaXBib2FyZGhlbHBlcjsxIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRTZXJ2aWNlKENvbXBvbmVudHMuaW50ZXJmYWNlcy5uc0lDbGlwYm9hcmRIZWxwZXIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29weVN0cmluZyhzdHJpbmcpOwogICAgICAgICAgICAgICAgICAgIF1dPgogICAgICAgICAgICAgICAgPC9ib2R5PgogICAgICAgICAgICA8L21ldGhvZD4KICAgICAgICAgICAgPG1ldGhvZCBuYW1lPSJ0b0Jhc2U2NCI+CiAgICAgICAgICAgICAgICA8cGFyYW1ldGVyIG5hbWU9Imljb24iIC8+CiAgICAgICAgICAgICAgICA8Ym9keT4KICAgICAgICAgICAgICAgICAgICA8IVtDREFUQVsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTlNVUkkgPSAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzOwogICAgICAgICAgICAgICAgICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHdpZHRoID0gdGhpcy5uYXR1cmFsV2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ID0gdGhpcy5uYXR1cmFsSGVpZ2h0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhOU1VSSSwgImNhbnZhcyIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FudmFzLndpZHRoID0gd2lkdGg7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3R4LmRyYXdJbWFnZSh0aGlzLCAwLCAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQud3JpdGVUb0NsaXBib2FyZChjYW52YXMudG9EYXRhVVJMKCJpbWFnZS9wbmciKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgIGltZy5vbmVycm9yID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50cy51dGlscy5yZXBvcnRFcnJvcigiQ291bnQgbm90IGxvYWQ6ICIgKyBpY29uKTsKICAgICAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgICAgICAgaW1nLnNyYyA9IGljb247CiAgICAgICAgICAgICAgICAgICAgXV0+CiAgICAgICAgICAgICAgICA8L2JvZHk+CiAgICAgICAgICAgIDwvbWV0aG9kPgogICAgICAgIDwvaW1wbGVtZW50YXRpb24+CiAgICA8L2JpbmRpbmc+CjwvYmluZGluZ3M+#page-proxy-plug"); }
![]()
PS:由于使在 stylish 上安装的方便,将 xbl 文件进行了 base64 编码,这里将提供 xbl 文件下载:pageProxyStack.xml
PS:由于 css 样式也会存在安全风险,如果你无法确定 css 样式是否可信,请不要随意安装 css 样式
hg clone https://bitbucket.org/zbinlin/nodejs
var dgram = require("dgram"); const DNSADDRESS = "8.8.8.8"; const DNSPORT = "53"; console.log("DNS Server: " + DNSADDRESS + ":" + DNSPORT); dgram.createSocket("udp4", function (msg, rinfo) { var server = this; var client = dgram.createSocket("udp4"); var address = rinfo.address; var port = rinfo.port; client.send(msg, 0, msg.length, DNSPORT, DNSADDRESS); var tid = 0, buf = null; client.on("message", function (msg, rinfo) { buf = msg; if (tid) clearTimeout(tid); tid = setTimeout(function () { tid = 0; server.send(buf, 0, buf.length, port, address); client.close(); }, 15); }); }).bind(53, "127.0.0.1");
扩展:FireRun
兼容性:Firefox 8+
功能:提供便捷地运行代码片段及调用外部程序的功能。目前版本为测试版,欢迎大家测试反馈!
下载地址:FireRun 0.0.1
下载地址:FireRun 0.0.2
在传统的扩展开发中,如果要添加一个工具栏按钮(以下简称按钮)是非常容易的事情,直接在 xul 中添加一个按钮元素(toolbarbutton)即可。但在 bootstrapped extensions 开发中,由于无法直接 overlay xul 文件(到 Firefox 9.0 为止还不支持 overlay),所以只能通过 js 来新建按钮。
文件名:copyImageDataURI@zbinlin.uc.js
功能:右键添加“复制图像(Base64)”
下载地址:最新版
hg clone https://bitbucket.org/zbinlin/copy-image-data-uri-base64-encode
文件名:trimOnMinimize@zbinlin.uc.js
功能:在最小化时整理物理内存(Only Windows)
下载地址:最新版
hg clone https://bitbucket.org/zbinlin/trimonminimize
PS: 如果不在意 FF 的内存占用,不建议使用该脚本!
注:本脚本的功能已集成到 TrayHotKey 0.3.5 了。
在 Firefox 的查找栏有个“全部高亮显示”按钮,但默认并没有开启,如果每次查找都要点一下该按钮,则显示有些麻烦。
本脚本可以在打开查找栏时自动开启“全部高亮显示”按钮,这样就不用每次手动去开启了。
下载地址:最新版
hg clone https://bitbucket.org/zbinlin/enablefindbarhighlight
userChromeJS 脚本
下载地址:最新版
hg clone https://bitbucket.org/zbinlin/disabledfocus
userJS 脚本(仅适用于 scriptish)
下载地址:最新版
hg clone https://bitbucket.org/zbinlin/disabledautofocus
PS: 有些输入框使用 HTML5 的新增属性 autofocus 来自动聚焦到输入框的,会发现本脚本失效了,这时可以通过修改 about:config 的 browser.autofocus,将其值改为 false 即可。