请先移步这里:转贴:Firefox *快捷键*

keyconfig扩展由dorando开发。你在这里可以得到他的帮助:keyconfig 20060828.1
本文几乎所有代码都来自这个长贴。谢谢作者dorando以及其他热心的朋友。这里可以下载到dorando开发的一些扩展,包括keyconfig:http://mozilla.dorando.at

由于这些代码散落各处,不易查找,因此整理了一下,权且当作自己的备忘,也与有共同爱好的朋友们分享。

不多废话了。(Firefox 2.0.0.3,keyconfig 20060828.1下测试通过。)

关闭左边标签页:
代码
var tab = gBrowser.mCurrentTab.boxObject.previousSibling;
if(tab) gBrowser.removeTab(tab);


关闭右边标签页:
代码
var tab = gBrowser.mCurrentTab.boxObject.nextSibling;
if(tab) gBrowser.removeTab(tab);


复制当前标签页:
代码
var oldHistory = gBrowser.webNavigation.sessionHistory;
gBrowser.selectedTab = gBrowser.addTab("about:blank");
var newHistory = gBrowser.webNavigation.sessionHistory;
newHistory.QueryInterface(Components.interfaces.nsISHistoryInternal);

for (var i = 0; i < oldHistory.count; i++) { newHistory.addEntry(oldHistory.getEntryAtIndex(i, false), true); }

if(oldHistory.count) gBrowser.webNavigation.gotoIndex(oldHistory.index);


下一个标签页(与ctrl+pagedown同):
代码
gBrowser.mTabContainer.advanceSelectedTab(1,true);


上一个标签页(与ctrl+pageup同):
代码
gBrowser.mTabContainer.advanceSelectedTab(-1,true);


重新载入其它标签页:
代码
var browsers = gBrowser.browsers;
var i = 0;
var l = browsers.length;
var x = gBrowser.mCurrentTab._tPos;

for(; i < l; i++)
if(i != x) try { browsers[i].reload(); } catch(err){};


重新载入所有标签页:
代码
gBrowser.reloadAllTabs();


重新载入左边所有标签页:
代码
var browsers = gBrowser.browsers;
var i = gBrowser.mCurrentTab._tPos - 1;
var l = -1;

for(; i > l; i--)
try { browsers[i].reload(); } catch(err){};


重新载入右边所有标签页:
代码
var browsers = gBrowser.browsers;
var i = gBrowser.mCurrentTab._tPos + 1;
var l = browsers.length;

for(; i < l; i++)
try { browsers[i].reload(); } catch(err){};


定位到最左边标签页:
代码
gBrowser.selectedTab = gBrowser.mTabContainer.firstChild;


定位到最右边标签页:
代码
gBrowser.selectedTab =
gBrowser.tabContainer.childNodes[gBrowser.tabContainer.childNodes.length-1];


关闭其他标签页:
代码
gBrowser.removeAllTabsBut(gBrowser.mCurrentTab);


关闭所有标签页:
代码
gBrowser.removeAllTabsBut(gBrowser.mCurrentTab);
gBrowser.removeCurrentTab();


定位到左邻标签页(不能循环):
代码
gBrowser.mTabContainer.advanceSelectedTab(-1);


定位到右邻标签页(不能循环):
代码
gBrowser.mTabContainer.advanceSelectedTab(1);


在当前标签页右边新建标签页:
代码
var x = gBrowser.mCurrentTab._tPos + 1;
gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab("about:blank"), x);


高亮关键词后,新建标签页后台搜索(以当前搜索栏搜索引擎,下同):
代码
BrowserSearch.loadSearch(getBrowserSelection(), true);


新建标签页前台搜索:
代码
gBrowser.mPrefs.setBoolPref("browser.tabs.loadInBackground",false);
BrowserSearch.loadSearch(getBrowserSelection(), true);
gBrowser.mPrefs.setBoolPref("browser.tabs.loadInBackground",true);


在当前标签页搜索:
代码
BrowserSearch.loadSearch(getBrowserSelection(), false);


在新窗口打开about:config:
代码
toOpenWindowByType('pref:pref', 'About:config');


书签管理器对话框:
代码
toOpenWindowByType('bookmarks:manager',
'chrome://browser/content/bookmarks/bookmarksManager.xul');


工具—选项对话框:
代码
openPreferences();


附加软件对话框:
代码
toOpenWindowByType('Add-ons:manager',
'chrome://mozapps/content/extensions/extensions.xul');


scrapbook扩展“获取前进行编辑”命令:
代码
if(sbPageEditor.TOOLBAR.hidden ||
document.getElementById("ScrapBookToolbox").hidden) {
sbPageEditor.init();
} else {
sbPageEditor.exit(true);
}

显示/隐藏书签工具栏:
代码
const bmToolbar = document.getElementById("PersonalToolbar");
bmToolbar.collapsed = !bmToolbar.collapsed;


显示/隐藏菜单栏:
代码
var mb = document.getElementById("toolbar-menubar");
mb.collapsed = !mb.collapsed;


页面向右滚动:
代码
goDoCommand('cmd_scrollRight');


页面向左滚动:
代码
goDoCommand('cmd_scrollLeft');


页面向上滚动:
代码
goDoCommand('cmd_scrollLineUp');


页面向下滚动:
代码
goDoCommand('cmd_scrollLinedown');


向下翻页(与space同):
代码
goDoCommand('cmd_scrollPageDown');


向上翻页(与shift+space同):
代码
goDoCommand('cmd_scrollPageup');


回到页首(与home同):
代码
goDoCommand('cmd_scrollTop');


回到页尾(与end同):
代码
goDoCommand('cmd_scrollBottom');


关闭所有正在运行的Firefox程序:
代码
goQuitApplication();


拷贝当前标签页标题:
代码
Components.classes["@mozilla.org/widget/clipboardhelper;1"]
    .getService(Components.interfaces.nsIClipboardHelper)
    .copyString(content.document.title);


在当前标签打开网页:
代码
gBrowser.loadURI('http://www.google.com/');


在新标签打开网页:(原来还可以用来打开about:config。Great!
代码
var myUrl = "http://www.baidu.com";
var ff= document.getElementById("content");
var tab = ff.addTab(myUrl);
ff.selectedTab = tab;


以定义的书签关键词在当前标签打开书签(对运行bookmarklets非常有用):
代码
if(window.loadURI) loadURI(getShortcutOrURI('填入你定义的关键词',{}));


类似paste and go,节省一次enter键:
代码
var url = readFromClipboard(); if (url) content.location = url;


跟踪下一链接(论坛的Sprill朋友提供,谢谢。下同。):
代码
var document = window._content.document;
var links = document.links;
for(i = 0; i < links.length; i++) {
if ((links[i].text == '下一頁') ||(links[i].text == '下一页') ||(links[i].text == '下一页>')||(links[i].text == '下一页 »') ||(links[i].text == '下一页>>') || (links[i].text == '[下一页]') || (links[i].text == '【下一页】') ||(links[i].text == 'Next') || (links[i].text == 'next') || (links[i].text == '››') || (links[i].text == '>')) document.location = links[i].href;
}

跟踪上一链接:
代码
var document = window._content.document;
var links = document.links;
for(i = 0; i < links.length; i++) {
if ((links[i].text == '上一頁') ||(links[i].text == '上一页') ||(links[i].text == '<上一页')||(links[i].text == '« 上一页') ||(links[i].text == '<<上一页') || (links[i].text == '[上一页]') || (links[i].text == '【上一页】') ||(links[i].text == 'Previous') || (links[i].text == 'Prev') ||(links[i].text == 'previous') || (links[i].text == 'prev') || (links[i].text == '‹‹') || (links[i].text == '<')) document.location = links[i].href;
}


欢迎指正和补充。

希望大家喜欢。Enjoy!

一点疑问:不知道官方为什么没有收录keyconfig,而keyconfig的辅助扩展functions for keyconfig反而可以找到。
非常感谢。
引用
自编快捷键关键要知道这个动作的command值

作者还写了另外一个扩展MenuManipulator。我没装,听说可以找到所有菜单项目的command值。
使用一下
原来这里已经整理了一些,Keyconfig extension: Firefox,不过好像很多都失效了,不知道怎么没人维护一下。

还是找到两个感兴趣的。 " border="0" alt="disdain.gif" />

关闭当前标签并定位到左边的标签:
代码
var tab = gBrowser.mCurrentTab; if(tab.previousSibling)
gBrowser.mTabContainer.selectedIndex--;
gBrowser.removeTab(tab);


关闭当前标签并定位到右边的标签:
代码
var tab = gBrowser.mCurrentTab; if(tab.nextSibling)
gBrowser.mTabContainer.selectedIndex++;
gBrowser.removeTab(tab);


还有一个,类似paste and go(一楼也有一个,是在当前标签打开),在新标签页后台打开剪贴板中的url地址。很是喜欢,原代码已经失效了,试着修改了一下,可以工作了。
代码
var url = readFromClipboard(); if (url) content.location= gBrowser.addTab(url);
好是好 但是编了那么多快捷键要记牢也是挺不容易轻松的事情
引用 (nettrottist @ 2007年7月28日 10:28 PM) <{POST_SNAPBACK}>
好是好 但是编了那么多快捷键要记牢也是挺不容易轻松的事情

上面的代码有几个功能相似,我只取了符合自己使用习惯的。再说,快捷键这东西是越用越顺手,越用越熟练。

PS:跟TC比实在太小儿科了。
什么是TC
去问善用佳软,一个坚定的TC拥护者。他会很高兴向你解释什么是TC。
原来是Total Commander

难道就是个双窗口加强版的文件处理器 况且这个跟快捷键有何关系
的确没什么关系。

借用善用佳软的话:
引用
Total Commander是Windows下键盘操作的典范和极致。用TC不会热键,等于不懂TC。喜欢热键操作而未用TC——xbeta想不出会有这种情况


扯得远了。
忍不住下了个汉化包破解版的 只有三MB的软件而已呀 真的有那么强大吗 试用几天再说了 希望真得那么神 不知道这个破解版的下插件会不会成问题
引用 (nettrottist @ 2007年7月29日 3:23 PM) <{POST_SNAPBACK}>
忍不住下了个汉化包破解版的 只有三MB的软件而已呀 真的有那么强大吗 试用几天再说了 希望真得那么神 不知道这个破解版的下插件会不会成问题

恭喜你,挖到宝了! " border="0" alt="rolleyes.gif" />

还有,不要在这里讨论破解。顺便说一下,未注册的TC没有任何功能上的限制。
咳咳,这个已经一楼已经有了啊。

找到一个不错的:高亮关键词使用Google后台搜索
代码
var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);
var submission = ss.defaultEngine.getSubmission(getBrowserSelection(), null);
gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, true, false);
keyconfig应该增加的几个功能
1.导出 导出为文本格式 输出为某.txt文件 便于查看学习
2.增加删除某快捷键选项 现在的是停用 停用后那些快捷键的项还是积存在keyconfig里面 以后越积越多 要是增加一个删除的按钮就好了 当然按了删除后要再增加一个确认的窗口 以免错误删除