说我正在开发一个website.com。我需要动态获取root(website.com)(用于开发和生产)。有没有办法在JS中做到这一点?
我在服务器上使用asp.net mvc 3.
答案 0 :(得分:5)
答案 1 :(得分:2)
请参阅:How to extract the hostname portion of a URL in JavaScript
从链接引用:
您可以连接位置协议和主机: var root = location.protocol +'//'+ location.host; 对于网址,请说“https://stackoverflow.com/questions”,它会返回“http://stackoverflow.com”
答案 2 :(得分:1)
我创建了一个实现root的函数:
function root() {
var scripts = document.getElementsByTagName( 'script' ),
script = scripts[scripts.length - 1],
path = script.getAttribute( 'src' ).split( '/' ),
pathname = location.pathname.split( '/' ),
notSame = false,
same = 0;
for ( var i in path ) {
if ( !notSame ) {
if ( path[i] == pathname[i] ) {
same++;
} else {
notSame = true;
}
}
}
return location.origin + pathname.slice( 0, same ).join( '/' );
}
加载js文件时,调用此函数一次 为了使它工作,你必须把它包含为js文件。
var basepath = root();
以下是一些例子:
location.host: 'http://test.com'
location.path: '/myapp/controller/action/id'
这将导致:
http://test.com/myapp