博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Firefox中使用超级Bookmarklet
阅读量:5898 次
发布时间:2019-06-19

本文共 1944 字,大约阅读时间需要 6 分钟。

首先要说的是,本文是给那些比较"发烧"的火狐玩家看的,其他浏览器用户可能对本文无爱.

很多人喜欢使用bookmarklet,放到自己的书签栏里,在点击时对当前页面进行各种各样的操作,比如原文翻译,比如短网址化,比如"分享到","收藏到",等等.和GreaseMonkey脚本的区别就是,这些操作不需要在每次页面加载后都执行,只需要在自己偶尔需要的时候点击执行就可以.

bookmarklet是一段由"javascript:"伪协议开头的JavaScript代码,这段代码执行的上下文是当前标签页中的页面窗口(window).比如"javascript:alert(location)",会弹出类似"http://www.cnblogs.com/ziyunfei"这样的URL.

我写了一个工具,可以让书签栏中以"chromejs:"伪协议开头的JavaScript代码执行在当前浏览器窗口下(chromeWindow),这样,执行"chromejs:alert(location)",会弹出"chrome://browser/content/browser.xul",这个XUL页面就是Firefox的主界面.你需要先安装我写的这个工具,再尝试下面的这些例子.

扩展:

或者

UC脚本:

在浏览器上下文中执行的JavaScript代码有特殊权限,你可以把你不常用的鼠标手势代码做成这样的超级书签放在书签栏里.

下面举几个例子,其中的链接都是用的"chromejs"伪协议,你可以直接拖到书签栏里.

比如:重启Firefox

Application.restart()

比如:当前页面截图

(function () {    var canvas = document.createElementNS("http://www.w3.org/1999/xhtml", "canvas");    canvas.width = content.document.documentElement.scrollWidth;    canvas.height = content.document.documentElement.scrollHeight;    var ctx = canvas.getContext("2d");    ctx.drawWindow(content, 0, 0, canvas.width, canvas.height, "rgb(255,255,255)");    canvas.toBlob(function (blob, blobURL) {        saveImageURL(blobURL = URL.createObjectURL(blob), content.document.title + ".png", null, null, true, null, document);        URL.revokeObjectURL(blobURL)    })})()

比如:打开资源管理器

(function () {    var file = Components.classes['@mozilla.org/file/directory_service;1'].getService(Components.interfaces.nsIProperties).get("WinD", Components.interfaces.nsILocalFile);    file.append("explorer.exe");    var process = Cc['@mozilla.org/process/util;1'].createInstance(Ci.nsIProcess);    process.init(file);    process.run(false, [","], 1);})()

比如:打开光驱(windows)

Components.utils.import("resource://gre/modules/ctypes.jsm");ctypes.open("winmm.dll").declare("mciSendStringW", ctypes.default_abi || ctypes.winapi_abi, ctypes.uint32_t, ctypes.jschar.ptr, ctypes.uint32_t, ctypes.unsigned_int, ctypes.uint32_t)("set cdaudio door open", 0, 0, 0);

这就是超级书签,是不是既强大又方便.

你可能感兴趣的文章
java.sql.SQLException: Lock wait timeout exceeded --转
查看>>
使用C#进行图像处理的几种方法(转)
查看>>
Ajax原理学习
查看>>
sap scriptfom 多语言翻译
查看>>
实现超级简单的bug管理系统
查看>>
[LeetCode] Find Anagram Mappings 寻找异构映射
查看>>
--Too small initial heap for new size specified
查看>>
黄聪:3分钟学会sessionStorage用法
查看>>
Entity Framework 全面教程详解(转)
查看>>
Windows上Python2.7安装Scrapy过程
查看>>
Chapter 3:Code Style in Django
查看>>
FIDO联盟拥抱政府监管,全面打造安全可信网络
查看>>
BlackNurse新型DoS攻击 15M流量就可以打瘫思科防火墙 思科做出了回应
查看>>
Interop 2015:思科为其SDN架构做好安全防护
查看>>
第19届亚太反病毒研究者联盟(AVAR)国际大会开幕在即
查看>>
挖掘数据金矿 领军协同创新 曙光荣膺“2016大数据创新应用领袖企业”称号
查看>>
国内WiFi厂商公关客户常说的三句话!
查看>>
《大数据分析原理与实践》一一 3.2 关联规则分析
查看>>
Fast通道获得Win10 Mobile Build 14977更新
查看>>
GAN专题阅读小组 | 每周一起读 #05
查看>>