2017-07-06 3 views
3

ich zu viele Möglichkeiten, unter den Hostnamen wie Code zu erhalten:erhalten den Hostnamen (Basis-URL) mit Hilfe von 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 

In meinem Fall möchte ich etwas anderes. Zum Beispiel:

Mein QA Site-Name ist example.com/testsite/index.html

Mein ART Website Name example.com/index.html

Das Problem mit den oben genannten Methoden ist es, den Host-Namen, um es mir nur die Hostnamen wie folgt zurückgibt: example.com

jedoch für QA muss ich i example.com/testsite

für ART zurückkehren müssen zurückzukehren example.com

Ist es mit dem einzelnen Code möglich? Danke im Voraus.

+0

Sie haben bereits die alle inf ormation Sie brauchen ... 'window.location.hostname + window.location.pathname' Ich verstehe nicht, was ist das Problem:/ – vsync

+0

Vielen Dank für Ihren Kommentar, , aber ich weiß nicht, ob ich auf QA oder PROD Code bin Seite. um den tatsächlichen Pfad zu manupulieren –

+0

Der Titel Ihrer Frage stellt nicht das Problem dar, das Sie gegenüberstehen – vsync

Antwort

3

Um zu erreichen, was Sie benötigen, müssen Sie die window.location.hostname, und auch den ersten Ordner in der window.location.pathname überprüfen. Etwas wie folgt aus:

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

Dank @Rory für die Antwort, aber es gibt keinen festen Namen wie 'testsite' für Ordner unter meiner Site –

+0

Ihre Frage sagt, dass es .. .? –

+0

Ok, aber dann ändere einfach die Zeichenfolge auf was auch immer es sein sollte. Die Logik ist die gleiche –

0

Verwenden window.location.hostname;

Beispiel:
Seite URL ist 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

Aber was ist mit dem Erhalten des '/ testsite' Pfades in der Antwort? –

+0

danke @Satinder für Ihre Antwort, aber wenn für QA '(localhost/testseite/test/form.html)' in diesem Fall wird es funktionieren. aber PROD '(localhost/test/form.html)' wird es falsche finalur geben –

1

beste Methode, die für beide ART arbeitet & 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; 
    } 
Verwandte Themen