FireFox扩展开发中如何操作标签页

关闭当前标签页:
var tab = gBrowser.mCurrentTab;
if(tab) gBrowser.removeTab(tab);


关闭左边标签页:
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;
}

你可能感兴趣的:(搜索引擎,chrome,Google,firefox,Go)