|
 
|
顶楼
发表于 2008-11-13 17:19
| 只看该作者
[交流] 让书签、历史、url、搜索在新的标签页打开(2012/02/04更新)
本帖最后由 golf-at 于 2012-2-4 19:03 编辑
这是 userChrome.js 脚本,适用于 firefox 3.0 以上的版本,让“书签”、“历史”、“地址”、“搜索”在新的标签页打开。有了这个脚本,我放弃使用 Tab Mix Lite CE 或者 Tab Mix Plus 了。下面的代码加到 userChrome.js 中,或者保存为 .uc.js 为后缀的文件放在配置文件夹的 chrome 目录下,同时使用附件提供的 userChrome.js。没有安装 userChrome.js 扩展的可以从附件下载安装。
2012/02/04
☆ 支持最新的 firefox 13.0a1 每夜版。
2010/12/29
☆ 更新了一下,新版本支持“我的足迹”了。
2010/08/15
☆ 由于firefox b4pre 的函数 replace() 自身的bug,导致脚本失效。如果 replace() 第一个参数为字符串且含括号,同时第二个参数含 $& 时,replace() 就不做替换,第一个参数使用正则表达式就没问题。现在调用 replace() 时第一个参数使用正则表达式了。
2009/04/27
☆ 修正了“书签管理器”(我的足迹)中点击书签时无法打开书签的问题。 |
附件: 您所在的用户组无法下载或查看附件
我的 Firefox 4.0 界面:
 |
|
|
|
|
|
|
 
|
2楼
发表于 2008-11-13 17:47
| 只看该作者
再提供一个脚本:在标签上双击关闭,空白处双击开新标签;在标签上点中键关闭标签,在空白处点中键恢复关闭的页面。- function TabClick(e, DblClick) {
- if (e.ctrlKey || e.shiftKey || e.altKey)
- return;
- if (DblClick==1 && e.button!=0) return;
- if (DblClick==0 && e.button!=1) return;
- var aTab = e.originalTarget;
- if (aTab.localName=="toolbarbutton")
- return;
- while(aTab.localName != "tabs") {
- if (aTab.localName == "tab")
- break;
- else
- aTab = aTab.parentNode;
- }
- if (aTab.localName != "tab") {
- if (DblClick == 1)
- BrowserOpenTab();
- else
- undoCloseTab();
- }
- else if(gBrowser.mTabContainer.childNodes.
- length == 1)
- openUILinkIn("about:blank", "current");
- else
- gBrowser.removeTab(aTab);
- }
- function TabBarClick(e) {
- if (e) TabClick(e, 0);
- }
- function TabBarDblClick(e) {
- if (e) TabClick(e, 1);
- }
- getBrowser().onTabClick = TabBarClick;
- getBrowser().onTabBarDblClick = TabBarDblClick;
复制代码 [ 本帖最后由 golf-at 于 2008-11-14 22:21 编辑 ] |
|
|
|
|
|
|

|
3楼
发表于 2008-11-13 18:06
| 只看该作者
收藏了~谢谢楼主分享 |
|
|
|
|
|
|
 
|
4楼
发表于 2008-11-13 19:16
| 只看该作者
原帖由 nettrottist 于 2008-11-13 18:48 发表 
啊,我要试试。看看能不能就此跟tab类扩展说再见了!
晕,怎么在我这里两个脚本都没有起作用呢?
并且默认的标签页外观也不理想,太宽了,有办法不借助扩展来变短些吗? ... 使用 http://mozilla.sociz.com/viewthread.php?tid=20276 这个帖子里面提供的扩展以及 userChrome.js。我已经在1楼提供扩展和 userChrome.js(读取.uc.js为后缀的脚本文件)。
[ 本帖最后由 golf-at 于 2008-11-13 19:21 编辑 ] |
|
|
|
|
|
|
   
|
5楼
发表于 2008-11-13 19:22
| 只看该作者
我当然是用了这个扩展,还加挂了好多的脚本。我把上面两段作成单独的us.js和在chrome文件夹下,以免出问题时不好排除原因。但是加上之后没有任何效果。
PS:好奇怪,当我把脚本放在userchrome.js文件里面时(而不是单独做一个uc.js)重启,第二个脚本达到了效果。第一个还是无效啊。
[ 本帖最后由 nettrottist 于 2008-11-14 10:41 编辑 ] |
|
|
|
|
|
|
   
|
7楼
发表于 2008-11-13 20:06
| 只看该作者
搜索栏的结果在新标签页打开
about:config
browser.search.openintab 把值设为true,即可
解决上面这个办法搜索时点“放大镜”仍然在当前tab打开的毛病,有下面的代码- /*open search in new tab */
- (function() {
- try {
- var cName = "@mozilla.org/preferences-service;1";
- var fPref = Components.classes[cName].getService(Components
- .interfaces.nsIPrefService);
- if (fPref.getBoolPref("browser.search.openintab") != true)
- fPref.setBoolPref("browser.search.openintab", true);
- eval("whereToOpenLink = " + whereToOpenLink.toString().replace(
- 'if (!e) {', 'if (e&&e.currentTarget.getAttribute("anonid")\
- =="search-go-button") return "tab"; [ DISCUZ_CODE_0 ]'));
- }catch(e){}
- })();
- function _LoadURL(aTriggeringEvent, aPostData)
- {
- var where = (gBrowser.currentURI.spec!='about:blank' ||
- gBrowser.webProgress.isLoadingDocument) ? 'tab' :
- 'current';
- if (gURLBar.value!='') openUILinkIn(gURLBar.value, where);
- return true;
- }
复制代码 URL在新标签页打开(userchrome.js脚本)- eval("BrowserLoadURL = " + BrowserLoadURL.toString().replace("e;", "[ DISCUZ_CODE_0 ] if ((gBrowser.currentURI.spec != 'about:blank' || gBrowser.webProgress.isLoadingDocument)) { var tab = gBrowser.addTab(); gBrowser.selectedTab = tab; }"));
复制代码 书签和历史,暂时未找到。也没关系,就用中键来点击吧,反正现在有了awesome bar。已经很少去用书签和历史了。
http://mozilla.sociz.com/viewthr ... mp;page=2#pid114458
再加上这个:保护标签页。也是userchrome.js脚本。
隐藏标签页上的关闭按钮:- .tabs-closebutton-box, .tab-close-button {display: none !important;}
复制代码 隐藏标签栏上的标签页列表下拉箭头:- @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
- .tabbrowser-arrowscrollbox + stack {display: none !important;}
复制代码 about:config
browser.tabs.tabMaxWidth 设为150(改变标签页宽度)
browser.tabs.tabMinWidth 设为50(改变标签页最小宽度)
使标签栏能多行显示的userchrome.css
http://userstyles.org/styles/10930
http://userstyles.org/styles/10989
经过这几步的拾掇,已经跟我使用tab mix plus时的标签栏的外观,效果差不多完全相等了!
[ 本帖最后由 nettrottist 于 2008-11-17 08:19 编辑 ] |
|
|
|
|
|
|

|
9楼
发表于 2008-11-13 21:00
| 只看该作者
我还是用我自己的userchrome.js.xpi和userchrome.js
搂住提供的不对我胃口哈 |
|
|
|
|
|
|
   
|
10楼
发表于 2008-11-13 21:01
| 只看该作者
| userchrome.js扩展不就0。8吗、难道真还有不同的版本不成。 |
|
|
|
|
|
|
 
|
11楼
发表于 2008-11-13 21:34
| 只看该作者
原帖由 nettrottist 于 2008-11-13 21:01 发表 
userchrome.js扩展不就0。8吗、难道真还有不同的版本不成。 当初的 0.8 版,在 firefox 3.0 时就不行了,后来有人改了一下,就变成了 0.8mod 版了。 |
|
|
|
|
|
|
 
|
13楼
发表于 2008-11-13 22:07
| 只看该作者
设定标签最大和最小宽度的代码:- var maxWidth = 200, minWidth = 120;
- gBrowser.mTabContainer.mTabMaxWidth = maxWidth;
- gBrowser.mTabContainer.mTabMinWidth = minWidth;
- for(i=0; i<getBrowser().mTabContainer.childNodes
- .length; i++) {
- var tab = gBrowser.mTabContainer.childNodes[
- i];
- tab.setAttribute("maxwidth", maxWidth);
- tab.setAttribute("minwidth", minWidth);
- }
复制代码 [ 本帖最后由 golf-at 于 2008-11-13 23:43 编辑 ] |
|
|
|
|
|
|
 
|
14楼
发表于 2008-11-13 22:09
| 只看该作者
原帖由 nettrottist 于 2008-11-13 19:22 发表 
我当然是用了这个扩展,还加挂了好多的脚本。我把上面两段作成单独的us.js和在chrome文件夹下,以免出问题时不好排除原因。但是加上之后没有任何效果。
PS:好奇怪,当我把脚本放在userchrome.js文件里面时(而不是单独做一 ... 我的机器上,两个脚本都是放在单独的 .uc.js 文件中,没有问题。难道是和其它的脚本有冲突?你将其它脚本先删除试试看。 |
|
|
|
|
|
|
 
|
16楼
发表于 2008-11-13 22:32
| 只看该作者
原帖由 nettrottist 于 2008-11-13 22:17 发表 
不删,我其他的脚本都是必须的。 我不是叫你就不用其它的脚本了,是临时删除(移到其它目录即可),看看是不是和其它的脚本冲突。就也如同一些扩展会冲突一样,各个独立的脚本,也有可能会发生冲突。 |
|
|
|
|
|
|
 
|
17楼
发表于 2008-11-13 23:30
| 只看该作者
原帖由 zls 于 2008-11-13 19:45 发表 
第一个脚本无效 ,第二个可以使用 刚才一直没有注意,发帖时没有“禁用URL识别”,结果代码中的两个字符被转换成[ DISCUZ_CODE_0 ],造成脚本加载失败,现在OK了。 |
|
|
|
|
|
|
   
|
18楼
发表于 2008-11-13 23:52
| 只看该作者
原帖由 golf-at 于 2008-11-13 22:07 发表 
设定标签最大和最小宽度的代码:var maxWidth = 200, minWidth = 120;
gBrowser.mTabContainer.mTabMaxWidth = maxWidth;
gBrowser.mTabContainer.mTabMinWidth = minWidth;
for(i=0; i about:config
browser.tabs.tabMaxWidth 设为150(改变标签页宽度)
browser.tabs.tabMinWidth 设为50(改变标签页最小宽度)
何必那么麻烦? |
|
|
|
|
|
|
 
|
19楼
发表于 2008-11-14 00:11
| 只看该作者
原帖由 nettrottist 于 2008-11-13 19:59 发表 
再问一下楼主,能不能编出光标移动到标签上,这个标签获得焦点调到前台。(省去一次点击) - /* auto focus tab */
- gBrowser.mTabBox.addEventListener('mouseover',
- function(e){ gBrowser.selectedTab=e.target },
- false);
复制代码 |
|
|
|
|
|
|
   
|
20楼
发表于 2008-11-14 08:29
| 只看该作者
原帖由 golf-at 于 2008-11-14 00:11 发表 
/* auto focus tab */
gBrowser.mTabBox.addEventListener('mouseover',
function(e){ gBrowser.selectedTab=e.target },
false);
有效,感谢中……能不能把这个获得焦点的时间也设上,比如鼠标放在标签上超过200毫秒以上选择,否则不选。
效果已经很好,又节省了一个tab focus的扩展。
[ 本帖最后由 nettrottist 于 2008-11-14 09:02 编辑 ] |
|
|
|
|
|
|
 
|
21楼
发表于 2008-11-14 09:51
| 只看该作者
原帖由 nettrottist 于 2008-11-14 08:29 发表 
有效,感谢中……能不能把这个获得焦点的时间也设上,比如鼠标放在标签上超过200毫秒以上选择,否则不选。 - /* auto focus tab */
- var ft_tid=null; var ft_event=null;
- function TabMouseOver(e) {
- ft_event = e.target;
- ft_tid = setTimeout("if (ft_event) { \
- gBrowser.selectedTab = ft_event; \
- ft_event = null; }", 200);
- }
- function TabMouseOut(e) {
- ft_event = null; clearTimeout(ft_tid);
- }
- getBrowser().mTabBox.addEventListener('mouseout',
- TabMouseOut, false);
- getBrowser().mTabBox.addEventListener('mouseover',
- TabMouseOver, false);
复制代码 [ 本帖最后由 golf-at 于 2008-11-14 09:53 编辑 ] |
|
|
|
|
|
|

|
23楼
发表于 2008-11-14 11:27
| 只看该作者
nettrottist
还差个中键恢复刚关闭标签的脚本呢? |
|
|
|
|
|
|

|
25楼
发表于 2008-11-14 11:37
| 只看该作者
| 这样跟你介绍的autoclick好像没有什么区别啊 |
|
|
|
|
|
|
   
|
26楼
发表于 2008-11-14 11:45
| 只看该作者
autoclick只针对页面上的链接,不会对标签起效的。知道了么? |
|
|
|
|
|
|

|
27楼
发表于 2008-11-14 12:00
| 只看该作者
原帖由 nettrottist 于 2008-11-14 11:45 发表 
autoclick只针对页面上的链接,不会对标签起效的。知道了么? 那 是我自己记错了 之前我用过另一个脚本 和这个混淆了
话说这个脚本用得不习惯啊 很容易误操作啊 |
|
|
|
|
|
|

|
28楼
发表于 2008-11-14 13:07
| 只看该作者
差个中键恢复刚关闭标签的脚本
我就可以卸载tab mix 了
nettrottist 、golf-at 帮下我啊 |
|
|
|
|
|
|
   
|
29楼
发表于 2008-11-14 13:17
| 只看该作者
- this.mItem = document.createElement("menuitem");
- this.mItemSep = document.createElement("menuseparator");
- this.mItem.setAttribute("label", "Undo Close Tab");
- this.mItem.setAttribute("oncommand", "undoCloseTab();");
- document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function() { undoCloseTabAdd.onPopupShowing(this); }, false);
- },
- onPopupShowing: function(aPopup)
复制代码 这个可以在右键菜单增加一个“恢复关闭标签”的项。 |
|
|
|
|
|