阅读:1410回复:0
[转] Firegestures 创建弹出菜单
原文: http://qixinglu.com/archives/create_fir ... popup_menu
图片就不复制过来了,大家请去原文看. ======================================= 这篇又是关于Firegestures,因为Firegestures实在太好用了,这次来讨论一下Firegestures弹出菜单创建,这篇文章比较长。 用了Firegestures很久了,没了这个扩展还真不习惯,关闭标签页已经条件反射地划“L”(即下右),而不是把鼠标移上去点关闭按钮。一个和两个方向的手势已给我分配完了,三个方向手势也用得七七八八,四个方向也用了几个,我是参考使用频率来分配。 弹出菜单 不过实用的脚本越来越多,手势好像不够用了,而且记住每个手势对应哪个动作还要时间一段时间适应。三个方向的以上手势鼠标行走距离还是多了点,换方向还要有少许停顿,影响操作的流畅度(划下和划右还是比较顺手的)。 create_firegestures_popup_menu 不要忘了Firegestures还提供弹出菜单功能!可以看看设置窗口里的自带弹出菜单,有四个。而Firegestures是支持自定义脚本的,理所当然能创建自己的弹出菜单,也就是说Firegestures给你提供额外的右键菜单,那就不需要记下每个手势,不需要划那么多个方向,只需要轻划一下,弹出个菜单,然后选择自己所需的功能,很实用吧。 脚本写法 Firegestures的官网有些例子,来看看弹出菜单的脚本写法,很简单 FireGestures.generatePopup(event, [ { label: "菜单显示文字1", oncommand: "命令1;" }, { label: "菜单显示文字2", oncommand: "命令2;" }, { label: "菜单显示文字3", oncommand: "命令3;" }, ] ); 其中“命令”就是你点击后执行的命令,直接写上去就行了,用分号隔开。之前的《AutoPager 简明攻略七-鼠标手势》,就是直接把命令写到双引号之间。比如打开书签和历史侧边栏可以这样写,你可以复制下面代码来试一试。 FireGestures.generatePopup(event, [ { label: "显示书签侧边栏", oncommand: "toggleSidebar('viewBookmarksSidebar');" }, { label: "最小化窗口", oncommand: "window.minimize();" }, { label: "关闭标签页", oncommand: "gBrowser.removeCurrentTab();" }, ] ); 但是这样需要自己找出哪些语句执行哪些动作,得看Firefox的开发者文档,很麻烦,也不实用。如果某个动作需要多个语句才能实现的话,可以用分号隔开,然后就是痛苦了,代码混乱难以阅读。当然有个方式是,封装成一个函数,不过依然能让这段脚本变得很长很长。 所以这篇文章的重点是,通过弹出菜单来调用已存在的手势! 调用外部手势 经过我看了半天的Firegestures源代码,郁闷阅读和探索过程就不分享了。总算发现了一个方法,写了几个工具函数,再去调用 Firegestures内部的函数,方便来调用已存在的手势。这三个工具函数如下 * FireGestures.API_runFromCommand,按命令调用 * FireGestures.API_runFromName,按名称调用 * FireGestures.API_runFromDirection,按手势方向调用。 不要给吓倒,其实很简单的。下面是一个例子,你只需关心菜单怎么写就行了,完整脚本代码在这里。 FireGestures.generatePopup(event, [ { label: "按命令调用,显示书签侧边栏", oncommand: "FireGestures.API_runFromCommande('FireGestures:BookmarksSidebar');" }, { label: "按名称调用,TinyURL 当前网址", oncommand: "FireGestures.API_runFromName('TinyURL 当前网址');" }, { label: "当手势方向调用,打开历史测边栏", oncommand: "FireGestures.API_runFromDirection('LD');" }, ] ); 一个一个函数来解释一下 * FireGestures.API_runFromCommand 这个是按命令来调用 { label: "按命令调用,显示书签侧边栏", oncommand: "FireGestures.API_runFromCommande('FireGestures:BookmarksSidebar');" }, 注意括号里面用的是单引号,值为“FireGestures:BookmarksSidebar”,这个命令是怎么搞来的呢,但你编辑“显示书签侧边栏”的手势,在编辑窗口就看到了这个命令了。 create_firegestures_popup_menu_1 这个函数只对默认自带的手势有用。 * FireGestures.API_runFromName 这个是按名称调用 { label: "按名称调用,TinyURL 当前网址", oncommand: "FireGestures.API_runFromName('TinyURL 当前网址');" }, 例子是之前的的《创建 TinyURL的Firegestures鼠标手势》,这里的命令就是你自己添加的脚本的名称 create_firegestures_popup_menu_2 所以这个函数只对自己添加的手势有用。 * FireGestures.API_runFromDirection 这个是按手势方向调用 { label: "当手势方向调用,打开历史测边栏", oncommand: "FireGestures.API_runFromDirection('LD');" }, 这里面的“LD”就是鼠标的方向手势。如果你已经为该动作分配了手势后,你就可以用这个函数来调用,还句话书说你既可以划手势来执行也可以用弹出菜单来执行 create_firegestures_popup_menu_3 这个方法对默认和自己添加的动作都有用,前提是分配了手势。 |
|
|