Vô hiệu hóa Ctrl + q với userChrom.js trong Firefox Quantum
Điều này có thể được thực hiện mà không cần một ứng dụng bên ngoài bằng một chút javascript trong hồ sơ Firefox của bạn.
Là điều kiện tiên quyết, bạn phải kích hoạt userChrom.js (xem bên dưới hoặc lấy từ repo GitHub ban đầu )
Sau khi sao chép thư mục chrome và nội dung của nó vào hồ sơ người dùng của bạn, hãy tạo một tệp <profile-dir>/chrome/disable_ctrl_q.uc.js
có nội dung sau:
var kqa = document.getElementById('key_quitApplication');
if (kqa) kqa.remove();
Cuối cùng, khởi động lại Firefox và ctrl + q sẽ không còn khiến ứng dụng thoát ra nữa.
Kích hoạt userChrom.js trong Firefox Quantum
Để đầy đủ, bên dưới là nội dung đầy đủ của các tệp chrome được sửa đổi. Để bật javascript người dùng, hãy tạo hai tệp này trong một chrome
thư mục trong hồ sơ Firefox của bạn.
- Nhập
about:support
vào thanh địa chỉ.
- Trong Thông tin cơ bản về ứng dụng> Thư mục hồ sơ, nhấp vào nút Mở thư mục để mở thư mục hồ sơ Firefox của bạn.
- Trong thư mục hồ sơ, tạo một thư mục mới gọi là
chrome
- Trong
chrome
thư mục, tạo các tệp mới userChrome.css
và userChrome.xml
với nội dung được liệt kê bên dưới.
- Khởi động lại Firefox (có lẽ bạn cũng muốn tạo tệp .uc.js ở trên nếu bạn đang làm theo các bước sau để tắt ctrl + q)
userChrom.css
/* Copyright (c) 2017 Haggai Nuchi
Available for use under the MIT License:
https://opensource.org/licenses/MIT
*/
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
toolbarbutton#alltabs-button {
-moz-binding: url("userChrome.xml#js");
}
userChrom.xml
<?xml version="1.0"?>
<!-- Copyright (c) 2017 Haggai Nuchi
Available for use under the MIT License:
https://opensource.org/licenses/MIT
-->
<bindings id="generalBindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:xbl="http://www.mozilla.org/xbl">
<binding id="js" extends="chrome://global/content/bindings/toolbarbutton.xml#menu">
<implementation>
<constructor><![CDATA[
function makeRelativePathURI(name) {
let absolutePath = Components.stack.filename;
return absolutePath.substring(0, absolutePath.lastIndexOf("/") + 1) + name;
}
// The following code executes in the browser context,
// i.e. chrome://browser/content/browser.xul
Services.scriptloader.loadSubScript(makeRelativePathURI("userChrome.js"), window);
]]></constructor>
</implementation>
</binding>
</bindings>