2017-07-06 55 views
3

我得到太多的方法可以得到像下面的代碼的主機的主機名(基本URL):得到使用JavaScript

window.location.host // you'll get sub.domain.com:8080 or sub.domain.com:80 
window.location.hostname // you'll get sub.domain.com 
window.location.protocol // you'll get http: 
window.location.port // you'll get 8080 or 80 
window.location.pathname // you'll get /virtualPath 

在我來說,我想要的東西不同。例如:

我的QA網站的名稱是example.com/testsite/index.html

我PROD網站的名稱是example.com/index.html

這裏的問題使用上述方法來獲得它返回我只喜歡這個主機的主機名:example.com

然而,對於QA我需要返回example.com/testsite

對於PROD我需要返回example.com

單個代碼可能嗎?提前致謝。

+0

最好的方法,你已經擁有的INF ormation你需要...'window.location.hostname + window.location.pathname'我不明白是什麼問題:/ – vsync

+0

感謝您的評論, 但我不知道我是否在質量保證或產品代碼側。來製作實際的路徑 –

+0

你的問題的標題並不代表你正面臨的問題 – vsync

回答

3

要達到您的要求,您需要檢查window.location.hostname以及window.location.pathname中的第一個文件夾。類似這樣的:

function getPath() { 
    var folder = (window.location.pathname.split('/')[0] || '').toLowerCase() == 'testsite' ? '/testsite' : ''; 
    return window.location.hostname + folder; 
} 
+0

感謝@Rory的回覆,但沒有像我的網站下的文件夾「testsite」的修復名稱 –

+0

你的問題說有.. 。? –

+0

好的,但只要將字符串更改爲任何它應該。邏輯是相同的 –

0

使用window.location.hostname;

例子:
網址爲http://localhost:2239/Default2.aspx?id=5&name=SatinderSingh

var getCurrentURL =window.location.href; //http://localhost:2239/Default2.aspx?id=5&name=SatinderSingh 
var getHostname=window.location.hostname; //localhost 
var getPathName=window.location.pathname // Default2.aspx 
var getPortNo=window.location.port  // 2239 
var getQueryString=window.location.search //?id=5&name=SatinderSingh 

var getHostname = window.location.hostname; //localhost 
    var getPathName = window.location.pathname // Default2.aspx 
    var split_PathName = String(getPathName.split("/"));   
    var FinalURL = getHostname + "/" + split_PathName[1] 
+0

但是在響應中獲取'/ testsite'路徑呢? –

+0

感謝@Satinder對你的迴應,但是如果對於QA'(localhost/testsite/test/form.html)',在這種情況下它會起作用。但PROD'(localhost/test/form.html)'它會給錯誤的finalurl –

1

,對於這兩種PROD工作& QA

var BASE_URL = window.location.href; 
    BASE_URL = BASE_URL.split("testsite"); 
    if (BASE_URL.length > 1) 
    { 
     BASE_URL = BASE_URL[0]; 
     BASE_URL = BASE_URL + 'testsite'; 
    } else{ 
     BASE_URL = window.location.origin; 
    }