目前,Firefox 会在标题栏中显示已访问网站的完整 URL。有一个browser.urlbar.trimURLs
偏好about:config
隐藏了http://
前缀但不隐藏https://
。其他浏览器(例如 Safari 和 Chrome)会隐藏https://
前缀和www.
。是否可以在 Firefox 中复制此行为?
答案1
您可以在 Firefox 中添加以下内容来添加对此的支持firefox.cfg
(或等效内容)AutoConfig 文件:
// -*- mode: javascript; -*- vim: set ft=javascript:
// See https://support.mozilla.org/en-US/kb/customizing-firefox-using-autoconfig
"use strict";
(() => {
if (Services.appinfo.inSafeMode) {
return;
}
const addressPattern = new RegExp(
"^(chrome:(?!//(global/content/commonDialog)\\.xhtml)|about:(?!blank))"
);
const hostnameStripPattern = new RegExp("^www\\.");
Services.obs.addObserver(subject => {
subject.addEventListener(
"DOMContentLoaded",
event => {
const document = event.originalTarget;
const window = document.defaultView;
if (!addressPattern.test(window.location.href)) {
return;
}
// Hide URL scheme once editing in URL bar is finished.
const urlbarInput = document.getElementById("urlbar-input");
const updateURLHandler = () => {
if (!window.gURLBar.focused) {
const untrimmedValue = urlbarInput.value;
let url;
try {
url = new window.URL(untrimmedValue);
} catch (error) {
// Catch TypeError: URL constructor errors for invalid/partial URLs.
if (error instanceof window.TypeError) {
return;
}
throw error;
}
// Preserve existing behavior for built-in prefixes like "view-source:".
if (url.protocol !== "https:" && url.protocol !== "http:") {
return;
}
const suffix = url.pathname + url.search + url.hash;
const displayValue =
url.hostname.replace(hostnameStripPattern, "") +
(suffix === "/" ? "" : suffix);
if (displayValue !== urlbarInput.value) {
window.gURLBar.value = displayValue;
window.gURLBar._untrimmedValue = untrimmedValue;
}
}
};
urlbarInput?.addEventListener("SetURI", updateURLHandler);
urlbarInput?.addEventListener("blur", updateURLHandler);
},
{ once: true }
);
}, "chrome-document-global-created");
})();
看这个答案了解更多背景信息和安装说明。
这将重现 Chrome 的行为,即https://[www.]
删除前缀但保留后缀,除非它只是/
。要使用 Safari 的行为(完全删除后缀并仅显示域),请更改displayValue
为url.hostname.replace(hostnameStripPattern, "")
。
您可能还想打开security.insecure_connection_text.enabled
偏爱about:config
或在user.js
HTTP 站点的 URL 栏中显示“不安全”指示。
user_pref("security.insecure_connection_text.enabled", true);
Bugzilla 上有一个未解决的问题这里。
更新:现在,版本 119 及更高版本已通过以下方式正式支持此功能:browser.urlbar.trimHttps
偏爱。
user_pref("browser.urlbar.trimHttps", true);