分类: FireFox

Pearl Crescent Page Saver:FireFox网页截屏插件

找了一款FireFox的网页截图插件,比较适合我的口味,它提供两个功能,保存整个页面为图片,或者是保存可见区域为图片,图像可以保存为 PNG 格式,或者 JPEG 格式。可以设置选项来保存全尺寸网页大小(默认)或者缩放到较小的尺寸。
Page Saver 有两种版本:Basic 和 Pro,其中 Basic 是免费版本,能满足我的需求了~。

Pearl Crescent Page Saver 主页:http://pearlcrescent.com/products/pagesaver/

支持的语言有:
Chinese (Simplified), Chinese (Traditional), Czech, Danish, Dutch, English, French, German, Greek, Italian, Japanese, Korean, Polish, Portuguese (Brazil), Russian, Slovak, Slovenian, Spanish (Spain), Turkish, Ukrainian.
阅读全文 »

分享链接到嘀咕网 – DiLink

嘀咕网上线以后,受到一些业界朋友的推荐他好评,出色的界面,不错的用户体验。

小王子说嘀享插件不太好用,不能编辑,限制太多~洁癖的人啊。。。(其实我也。。。)

于是昨晚弄了一个FireFox的扩展,添加一个按钮到FireFox工具栏上,把链接分享到嘀咕网,对于我这种从来不显示书签栏的人(有些分享的插件,是做一个书签,需要显示书签栏,否则不太方便使用),这种方式太方便了~~

放出下载地址:http://app.foxling.cn/dilink/

功能介绍

  • 点击按钮直接分享当前网页
  • 选中页面上的文字,点击按钮,选中的文字将作为嘀咕内容。

安装步骤详解

  1. DiLink安装步骤一
  2. DiLink安装步骤二
  3. DiLink安装步骤三
  4. DiLink安装步骤四
  5. DiLink安装步骤五
  6. DiLink安装步骤六
  7. DiLink安装步骤七

悄悄放出我在嘀咕网的地址~~http://www.digu.com/foxling 快跟随我的吧,嘿嘿~

FireFox扩展开发,保存文本文件。

var file = Components.classes["@mozilla.org/file/directory_service;1"]
.getService(Components.interfaces.nsIProperties)
.get("AChrom", Components.interfaces.nsIFile);
//.get("DeskP", Components.interfaces.nsIFile);
file.append("t.txt");

var strm = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
strm.QueryInterface(Components.interfaces.nsIOutputStream);
strm.QueryInterface(Components.interfaces.nsISeekableStream);
strm.init( file, 0x04 | 0x08 | 0x10, 420, 0 );
strm.write(str,str.length );
strm.flush();
strm.close();
function read(readfile)
{
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(readfile);
var is =
Components.classes["@mozilla.org/network/file-input-stream;1"]
.createInstance(Components.interfaces.nsIFileInputStream);
is.init(file, 0x01, 00004, null);
var sis =
Components.classes["@mozilla.org/scriptableinputstream;1"]
.createInstance(Components.interfaces.nsIScriptableInputStream);
sis.init(is);
var output = sis.read(sis.available());
alert(output);
}
read("C:\test.txt");

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;
}