|
阅读:4017回复:8
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 火狐 保存并关闭 保存并退出 |
|
|
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 09:12
能用代码改回来的功能,算是“真的”去掉了么?
|
|
|
|
7楼#
发布于:2018-10-26 09:13
好像我默认都是恢复标签的,这年头不固顶几个标签页都不像是在云办公啊
|
|
|
|
8楼#
发布于:2018-10-29 10:38
|
|
|