阅读:3567回复:9
Nightly 63(2018-06-26)移除了 browser.showQuitWarning 首选项 (SEO: Firefox/火狐 保存并退出)
browser.showQuitWarning 首选项默认关闭,
记得以前还有对应“设置”界面的,如果打开, 退出 Firefox 时如果有打开多个标签,则会有 “保存并退出” 的选项按钮。 对于偶尔需要临时保存上次访问标签的用户很有用, 实在不明白为什么要把这么实用的功能去掉。 Bug 1438499 - Closing Firefox through menu or shortcut, does not suface the closing confirmation browser.startup.page 值为 3(对应上图勾选 “Do not ask next time” 后的效果,即不弹窗询问直接保存并退出) 的逻辑倒是没去掉。 对于很依赖这个功能的同学可以使用以下 UC 脚本恢复。 // ==UserScript== // @name 恢复 “保存并退出” 弹窗按钮 // @version 1.0 // @include main // ==/UserScript== location == 'chrome://browser/content/browser.xul' && setTimeout(() => { eval('gBrowser.warnAboutClosingTabs = ' + gBrowser.warnAboutClosingTabs.toString() .replace('warnAboutClosingTabs(', 'function warnAboutClosingTabs(') .replace('BUTTON_POS_0) +', '$& (ps.BUTTON_TITLE_IS_STRING * ps.BUTTON_POS_2) +') .replace('gTabBrowserBundle.GetStringFromName("tabs.closeButtonMultiple")', '$&.includes("Close") ? "&Save and Quit" : "保存并退出 (&S)", null, $&') .replace('null, null,', '') .replace('var reallyClose = (buttonPressed == 0);', 'var reallyClose = (buttonPressed != 1);' + 'if(buttonPressed == 0) {' + ' Services.prefs.setBoolPref("browser.sessionstore.resume_session_once", true)' + '}' ) ); }, 2000); 另外,在侧边栏加载书签的功能也在同一天去掉了。 Bug 1452645 - Remove "Open in Sidebar" feature Nightly65.0a1(2018-12-02) 更新 由于 Bug 1506173 - Quit message confusing - implies all tabs will be lost when exiting browser 上面的UC脚本失效了,新的UC脚本如下 // ==UserScript== // @name 恢复 “保存并退出” 弹窗按钮 // @version 2.2 // @include chrome://global/content/commonDialog.xul // @include chrome://global/content/commonDialog.xhtml // ==/UserScript== location.href.startsWith('chrome://global/content/commonDialog.x') && (() => { const checkbox = document.getElementById('checkbox'); if(!checkbox) return; const { Services } = ChromeUtils.import('resource://gre/modules/Services.jsm'); try{ const gTabBundle = Services.strings.createBundle('chrome://browser/locale/tabbrowser.properties'); const {AppConstants} = ChromeUtils.import('resource://gre/modules/AppConstants.jsm'); const title = gTabBundle.GetStringFromName(`tabs.closeAndQuitTitleTabs${AppConstants.platform == 'win' ? 'Win' : ''}`); const closeWarningPromptMe = gTabBundle.GetStringFromName('tabs.closeWarningPromptMe'); if(document.title !== title || closeWarningPromptMe !== checkbox.label) return; }catch(ex){ return; } const accept = (document.documentElement.getButton ? document.documentElement : document.getElementById('commonDialog') ).getButton('accept'); const button = document.createXULElement('button'); button.className = 'dialog-button'; button.setAttribute('label', checkbox.label.includes('Warn') ? 'Save and Quit' : '保存并退出'); button.setAttribute('accesskey', 'S'); button.addEventListener('command', () => { Services.prefs.setBoolPref('browser.sessionstore.resume_session_once', true); accept.doCommand(); }); accept.before(button); })(); Nightly88.0a1(2021-03-09) 更新 由于 Bug 1693048 - Update close tabs (and quit/exit) warning dialog content for proton 上面的UC脚本失效了,新的UC脚本如下 // ==UserScript== // @name 恢复 “保存并退出” 弹窗按钮 // @version 2.3 // @include chrome://global/content/commonDialog.xhtml // ==/UserScript== location.href.startsWith('chrome://global/content/commonDialog.x') && (() => { const checkbox = document.getElementById('checkbox'); if(!checkbox) return; const {Services} = ChromeUtils.import('resource://gre/modules/Services.jsm'); try{ const gTabBundle = Services.strings.createBundle('chrome://browser/locale/tabbrowser.properties'); const {AppConstants} = ChromeUtils.import('resource://gre/modules/AppConstants.jsm'); const title = gTabBundle.GetStringFromName(`tabs.closeTabsAndQuitTitle${AppConstants.platform == 'win' ? 'Win' : ''}`); const closeWarningPromptMe = gTabBundle.GetStringFromName('tabs.closeWarningPrompt'); if(document.title !== title || closeWarningPromptMe !== checkbox.label) return; }catch(ex){ console.log(ex); return; } const accept = document.getElementById('commonDialog').getButton('accept'); const button = document.createXULElement('button'); button.className = 'dialog-button'; button.setAttribute('label', checkbox.label.includes('Warn') ? 'Save and Quit' : '保存并退出'); button.setAttribute('accesskey', 'S'); button.addEventListener('command', () => { Services.prefs.setBoolPref('browser.sessionstore.resume_session_once', true); accept.doCommand(); }); accept.before(button); button.focus(); })(); Nightly94.0a1(2021-09-09) 更新 由于 Bug 1726736 - Implement different wording and a different pref to warn users when using a keyboard shortcut to quit 上面的UC脚本失效了,新的UC脚本如下 // ==UserScript== // @name 恢复 “保存并退出” 弹窗按钮 // @version 2.4 // @include chrome://global/content/commonDialog.xhtml // ==/UserScript== location.href.startsWith('chrome://global/content/commonDialog.x') && (() => { const checkbox = document.getElementById('checkbox'); if(!checkbox) return; const {Services} = ChromeUtils.import('resource://gre/modules/Services.jsm'); try{ const gTabBundle = Services.strings.createBundle('chrome://browser/locale/tabbrowser.properties'); const {AppConstants} = ChromeUtils.import('resource://gre/modules/AppConstants.jsm'); const win = Services.wm.getMostRecentBrowserWindow(); const rTitle = new RegExp(`${ gTabBundle.GetStringFromName('tabs.closeWindowsTitle') }|${ gTabBundle.GetStringFromName('tabs.closeTabsTitle') }`.replace(/;/g, '').replace(/#1/g, '\\d+')); const closeTabsConfirmCheckbox = gTabBundle.GetStringFromName('tabs.closeTabsConfirmCheckbox'); const closeTabsWithKeyConfirmCheckbox = gTabBundle.formatStringFromName( 'tabs.closeTabsWithKeyConfirmCheckbox', [ win.ShortcutUtils.prettifyShortcut( win.document.getElementById('key_quitApplication') )] ); if(!rTitle.test(document.title) || ( closeTabsConfirmCheckbox !== checkbox.label && closeTabsWithKeyConfirmCheckbox !== checkbox.label) ) return; }catch(ex){ console.log(ex); return; } const accept = document.getElementById('commonDialog').getButton('accept'); const button = document.createXULElement('button'); button.className = 'dialog-button'; button.setAttribute('label', checkbox.label.includes('Confirm') ? 'Save and Quit' : '保存并退出'); button.setAttribute('accesskey', 'S'); button.addEventListener('command', () => { Services.prefs.setBoolPref('browser.sessionstore.resume_session_once', true); accept.doCommand(); }); accept.before(button); button.focus(); })(); 并且修改 chrome 目录下的引导脚本 “userChrome.js” ,如果 “userChrome.js” 中包含 if(location.href =='chrome://global/content/commonDialog.xul') return;或者 if(location.href =='chrome://global/content/commonDialog.xhtml') return;这一行的,请将其删除或者注释掉,否则脚本将无法生效。 退出 FF 后,删除配置目录下 “startupCache” 文件夹,重启 FF。 如果 “userChrome.js” 中不包含该行代码,可忽略。 SEO: Firefox 火狐 保存并关闭 保存并退出 |
|
最新喜欢:fang55... |
1楼#
发布于:2018-06-27 15:44
确实这么实用的选项居然也去掉。侧边栏加载书签的之前也听说会去掉。
|
|
|
2楼#
发布于:2018-06-27 16:59
你们是不是误会了什么。。。。。你们再仔细看看那句话?
|
|
3楼#
发布于:2018-06-27 19:34
|
|
4楼#
发布于:2018-10-16 16:29
今天更新63 rc版,才发现这窗口没了
我也不是每次都要保存会话啊 看来是不打算改回去了 https://bugzilla.mozilla.org/show_bug.cgi?id=1487547 说要么你从菜单恢复上次浏览状态,要么启动时自动恢复上次浏览状态 |
|
|
5楼#
发布于:2018-10-26 00:23
希望以后能补回来把?
非常实用的功能 |
|
6楼#
发布于:2018-10-26 07:23
|
|
7楼#
发布于:2018-10-26 09:12
能用代码改回来的功能,算是“真的”去掉了么?
|
|
|
8楼#
发布于:2018-10-26 09:13
好像我默认都是恢复标签的,这年头不固顶几个标签页都不像是在云办公啊
|
|
|
9楼#
发布于:2018-10-29 10:38
|
|
|