如何将 TLD 添加到 Safari 中的搜索例外

Mar*_*ddy 6 safari macos tld

如何添加到 Safari 将加载.locahost\xe2\x80\x94的 TLD 列表,而不是在不提供协议的情况下搜索 \xe2\x80\x94?或者(或者也许另外),我如何让 Safari 停止删除http://从 URL 中删除协议?

\n\n
\n\n

我已经用来project.localhost处理本地开发有一段时间了,现在.dev不再是一个可行的开发 TLD。但我对 Safari 的默认行为感到沮丧。我想做的是阻止 Safari 将域名提交给搜索引擎。

\n\n

期望:

\n\n
    \n
  1. 进入project.localhost地址栏
  2. \n
  3. 浏览器加载http://project.localhost
  4. \n
\n\n

我会对 Safari 不删除http://,但我也找不到办法做到这一点。

\n\n

实际发生的情况:

\n\n
    \n
  1. 进入project.localhost地址栏
  2. \n
  3. 浏览器发送project.localhost至 Duck Duck Go
  4. \n
  5. 用户很想测试键盘的弹道特性
  6. \n
\n\n

或者,在我加载之后http://project.localhost尝试在当前 URL 之后添加一些内容:

\n\n
    \n
  1. 单击地址栏,URL 已缩短为project.localhost
  2. \n
  3. 添加/test.html到末尾
  4. \n
  5. 浏览器发送project.localhost/test.html至 Duck Duck Go
  6. \n
  7. 用户认为软件暴力
  8. \n
\n

Mar*_*ddy 2

事实证明,Safari 扩展可能是一个长期的解决方案。目前,我无法管理开发者会员费用。但这是未来我和其他研究此问题的人的工作代码。

在扩展程序的全局页面中<script>

(function() {
    safari.application.addEventListener("beforeSearch", function(event) {
        if (event.query.split("/")[0].split(".").pop() == "localhost") {
            event.preventDefault();
            safari.application.activeBrowserWindow.activeTab.url = "http://" + event.query;
        }
    }, true);
})();
Run Code Online (Sandbox Code Playgroud)