阅读:9059回复:37
突然关闭多个标签页的警告又出来了
由于经常“关闭左/右”,“关闭其他”标签页,这个警告我是早早就取消了的,今天用的时候,这个警告又出来了,而且我去查了一下选项中“warn me when closing multiple tabs”的选项是没有选中的,about:config里面的browser.warnOnClose也是false,可是这个警告依然存在。安全模式下也没用。用最新Nightly的麻烦看一下,谢谢。
|
|
|
1楼#
发布于:2012-07-07 10:16
你点上看看呢,说不定选项弄反了
Avast最近就出了这个毛病…… |
|
|
2楼#
发布于:2012-07-07 10:16
来回搞几次了啊似乎都没用。
|
|
|
3楼#
发布于:2012-07-07 10:16
是呀。我还正苦恼着呢。只能等bug修复了。
|
|
4楼#
发布于:2012-07-07 10:16
关于这个问题,我已经确认在最新的16和17版里面
gBrowser.removeAllTabsBut(gBrowser.mCurrentTab);这个内嵌的函数无论如何都会触发那个警告。新建配置,打开多个空白标签页,在标签栏上右键选择“关闭其它标签页”,也无论你在选项中设置是否警告,都会触发警告。 但是我注意到Tab Utilities里面自带的标签右键菜单中有一个自己写的“关闭其他标签页”的功能,不会触发这个警告,它具体实现的代码(tabutil.js)是: //关闭多个标签页 TU_hookCode("gBrowser.warnAboutClosingTabs", /\w+(?= <= 1)/, "($& = arguments[1] ? arguments[1].length : $&)"); gBrowser.removeTabsBut = function removeTabsBut(aTabs, bTabs) { aTabs = aTabs ? "length" in aTabs ? aTabs : [aTabs] : []; bTabs = bTabs ? "length" in bTabs ? bTabs : [bTabs] : []; if (bTabs.length > 0) aTabs = Array.filter(aTabs, function(aTab) Array.indexOf(bTabs, aTab) == -1); if (this.warnAboutClosingTabs(true, aTabs)) { if (Array.indexOf(aTabs, this.mCurrentTab) > -1) this.selectedTab = bTabs[0] || aTabs[0]; let count = 0; for (let i = aTabs.length - 1; i >= 0; i--) { this.removeTab(aTabs[i], {animate: true}); if (aTabs[i].hasAttribute("removing")) count++; } this._lastClosedTabsCount = count; } }; TU_hookCode("undoCloseTab", /.*ss.undoCloseTab.*/, "for (let i = aIndex == null ? gBrowser._lastClosedTabsCount || 1 : 1; i > 0; i--) $&;"); gBrowser.closeLeftTabs = function(aTab) this.removeTabsBut(this.leftTabsOf(aTab), aTab); gBrowser.closeRightTabs = function(aTab) this.removeTabsBut(this.rightTabsOf(aTab), aTab); gBrowser.closeOtherTabs = function(aTab) this.removeTabsBut(this.otherTabsOf(aTab), aTab); gBrowser.closeDuplicateTabs = function(aTab) this.removeTabsBut(this.duplicateTabsOf(aTab), aTab); gBrowser.closeSimilarTabs = function(aTab) this.removeTabsBut(this.similarTabsOf(aTab), aTab); gBrowser.closeAllTabs = function() this.removeTabsBut(this.allTabs); gBrowser.closeAllDuplicateTabs = function() this.removeTabsBut(this.allTabs, this.uniqueTabsOf(this.allTabs)); 后面还有一条 ["context_closeOtherTabs", "gBrowser.removeTabsBut(gBrowser.allTabs, gBrowser.mContextTabs);"] 剥离了一下主要起作用的函数,做成鼠标手势可用的代码如下 //关闭其他标签页 gBrowser.removeTabsBut = function removeTabsBut(aTabs, bTabs) { aTabs = aTabs ? "length" in aTabs ? aTabs : [aTabs] : []; bTabs = bTabs ? "length" in bTabs ? bTabs : [bTabs] : []; if (bTabs.length > 0) aTabs = Array.filter(aTabs, function(aTab) Array.indexOf(bTabs, aTab) == -1); if (this.warnAboutClosingTabs(true, aTabs)) { if (Array.indexOf(aTabs, this.mCurrentTab) > -1) this.selectedTab = bTabs[0] || aTabs[0]; let count = 0; for (let i = aTabs.length - 1; i >= 0; i--) { this.removeTab(aTabs[i], {animate: true}); if (aTabs[i].hasAttribute("removing")) count++; } this._lastClosedTabsCount = count; } }; gBrowser.removeTabsBut(gBrowser.allTabs, gBrowser.mContextTabs); //关闭所有标签页 gBrowser.removeTabsBut = function removeTabsBut(aTabs, bTabs) { aTabs = aTabs ? "length" in aTabs ? aTabs : [aTabs] : []; bTabs = bTabs ? "length" in bTabs ? bTabs : [bTabs] : []; if (bTabs.length > 0) aTabs = Array.filter(aTabs, function(aTab) Array.indexOf(bTabs, aTab) == -1); if (this.warnAboutClosingTabs(true, aTabs)) { if (Array.indexOf(aTabs, this.mCurrentTab) > -1) this.selectedTab = bTabs[0] || aTabs[0]; let count = 0; for (let i = aTabs.length - 1; i >= 0; i--) { this.removeTab(aTabs[i], {animate: true}); if (aTabs[i].hasAttribute("removing")) count++; } this._lastClosedTabsCount = count; } }; gBrowser.removeTabsBut(gBrowser.allTabs, gBrowser.mContextTabs); gBrowser.removeCurrentTab(); |
|
|
5楼#
发布于:2012-07-07 10:16
测试过,在keyconfig下不生效。
|
|
6楼#
发布于:2012-07-07 10:16
KMC版主能否再改进改进
|
|
7楼#
发布于:2012-07-07 10:16
我也不熟悉代码啊,我就乱改了改在鼠标手势下生效了,求高人改。
|
|
|
8楼#
发布于:2012-07-07 10:16
你说的“不生效”是一点反应也没有,还是关闭不正确?刚刚换了个XP的机器试了试,前面的关闭其他标签页似乎会关闭所有标签页,把最后一句改成
gBrowser.removeTabsBut(gBrowser.allTabs, gBrowser.mCurrentTab); 即可。 |
|
|
9楼#
发布于:2012-07-07 10:16
是一点反应都没有
|
|
10楼#
发布于:2012-07-07 10:16
我的 firefox 17 没有这个问题,是今早下载的小时版。
|
|
11楼#
发布于:2012-07-07 10:16
刚刚下载的最新小时版也没这个问题。不会是和某个标签类扩展冲突了吧。
|
|
12楼#
发布于:2012-07-07 10:16
我实在不知道为什么,似乎也只有我跟ybbao碰到。否则这么大的bug就炸锅了。但是我新建配置都一样有这个问题。
|
|
|
13楼#
发布于:2012-07-07 10:16
有图有真相
|
|
14楼#
发布于:2012-07-07 10:16
新建配置还是如此,郁闷
|
|
上一页
下一页