0

我工作的公司更新了我们国家的 DNS 设置,现在许多没有完全限定域名的旧链接不再起作用。

前:
http://server:8080/something

后:
http://server.company.com:8080/something

但是其他国家和服务器仍然使用旧格式(它们将在未来几年内迁移),我们在邮件和聊天中得到很多旧链接,当我们点击这些链接时,浏览器无法打开它们。

我想编写一个小书签,将旧 URL 替换为新 URL,例如:

javascript:window.location.href=window.location.href.replace(/(^http:\/\/[^.]*):/,'$1.company.com:')

不幸的是,小书签不起作用,因为该页面未加载,因此window.location.href不包含要替换的 URL。

我还能以某种方式访问​​在浏览器的地址栏中输入的 URL 吗?

或者没有办法,我需要为此创建一个浏览器扩展?

4

2 回答 2

0

选项 1:提示用户输入。他们必须复制/粘贴 URL。

选项 2:创建一个非常简单的网页,接受 URL 作为查询参数,重写它并重定向。设置搜索栏以使用该页面。然后可以将链接粘贴到搜索栏中,而无需单击书签。甚至可以将链接拖入搜索栏。如果您希望搜索栏仍然搜索,请将任何非 URL 文本重定向到 Google。

选项 3:创建一个非常简单的网页,该网页将重定向到正确的 URL。更新主机以将“服务器”指向该网页。如果无法更新 DNS,请更新 hosts 文件。

于 2013-06-13T16:22:28.243 回答
0

我最终创建了一个运行良好的 Chrome 扩展程序:我们只需点击按钮并打开正确的页面。以下是此扩展中的一些相关部分:

清单.json

{
    "manifest_version": 2,
    "name": "Name of extension",
    "permissions": [
        "activeTab"
    ],
    "background": {
        "scripts": ["script.js"],
        "persistent": false
    },
    "browser_action": {
        "default_icon": "icon.png",
        "default_title": "Tooltip for button"
    }
}

脚本.js

chrome.browserAction.onClicked.addListener(function(tab) {
    var $before = tab.url,
        $after = $before.replace(/(^http:\/\/[^.:\/]*)([:\/])/,'$1.company.com$2');
    if ($before !== $after) {
        chrome.tabs.update(tab.id, {url: $after});
    }
});
于 2013-06-14T15:05:42.023 回答