2013-06-13 22 views
0

我工作的公司更新了其在我們國家的DNS設置,現在大量舊鏈接沒有完全合格的域名不再適用。如何在頁面未加載時訪問位置欄中的URL

前:
http://server:8080/something

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

但其他國家和服務器仍然使用舊的格式(它們將在未來幾年內遷移),我們得到一個很多郵件和聊天中的舊鏈接,當我們點擊那些瀏覽器無法打開它們時。

我想編寫一個書籤,它取代了舊的URL到新的,是這樣的:

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

不幸的是,書籤不起作用,因爲未加載的頁面,因此window.location.href不包含要替換的URL。

我能以某種方式仍然訪問在瀏覽器的地址欄中輸入的URL嗎?

或者有沒有辦法,我需要爲此創建一個瀏覽器擴展?

+0

我不明白這一點。爲什麼你不能訪問window.location.href?當頁面加載document.ready或window.onload時,您是否等待? – lukaleli

+0

由於未找到URL,因此永遠不會加載頁面。 – zengabor

回答

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}); 
    } 
}); 
0

選項1:提示用戶輸入。他們必須複製/粘貼網址。

選項2:創建一個非常簡單的網頁,接受URL作爲查詢參數,重寫它並重定向。設置搜索欄以使用該頁面。然後可以將鏈接粘貼到搜索欄而無需點擊書籤。甚至可以將鏈接拖到搜索欄中。如果您希望搜索欄仍然搜索,請將任何非網址文本重定向到Google。

選項3:創建一個非常簡單的網頁,將重定向到正確的URL。更新主機以在該網頁指向「服務器」。如果您無法更新DNS,請更新主機文件。

+0

我不確定我是否遵守上述所有規定。這件事對我們幾個人來說只是一個便利的解決方案,所以我們可以避免每天多次輸入'.company.com'。我不知道如果我們不僅僅需要點擊一個按鈕(比如複製URL,打開一個站點,然後粘貼等),而且還需要做其他任何事情,這是否值得。很抱歉,我們無法更改DNS和我們的主機文件。 :( – zengabor

相關問題