我所在的公司更新了我们国家/地区的DNS设置,现在许多没有完全合格域名的旧链接不再有效。
之前:
http://server:8080/something
后:
http://server.company.com:8080/something
但是其他国家和服务器仍然使用旧格式(它们将在未来几年内迁移)并且我们在邮件和聊天中获得了许多旧链接,当我们点击这些链接时,浏览器无法打开它们。
我想写一个书签,将旧网址替换为新网址,例如:
javascript:window.location.href=window.location.href.replace(/(^http:\/\/[^.]*):/,'$1.company.com:')
不幸的是,bookmarklet不起作用,因为页面未加载,因此window.location.href
不包含要替换的URL。
我能否以某种方式访问在浏览器的位置栏中输入的网址?
或者我无法为此创建浏览器扩展程序?
答案 0 :(得分:0)
选项1:提示用户输入。他们必须复制/粘贴网址。
选项2:创建一个非常简单的网页,该网页接受URL作为查询参数,重写并重定向。设置搜索栏以使用该页面。然后可以将链接粘贴到搜索栏中,而无需单击书签。甚至可以将链接拖到搜索栏中。如果您希望搜索栏仍然搜索,请将任何非网址文字重定向到Google。
选项3:创建一个非常简单的网页,该网页将重定向到正确的网址。更新主机以指向该网页上的“服务器”。如果无法更新DNS,请更新主机文件。
答案 1 :(得分:0)
我最终创建了一个效果很好的Chrome扩展程序:我们只需点击按钮即可打开正确的页面。以下是此扩展中的一些相关部分:
<强>的manifest.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"
}
}
<强>的script.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});
}
});