<htmL>
<script>
var webRootHelper={
isChild:true,//是否为子网站
rootPath: function() {
var that=this;
var local=window.location;
var domain=local.protocol + '//' + local.host+'/';
if(!that.isChild){
return domain;
}else{
var pathName = local.pathname.substring(1);
var webName = pathName == '' ? '' : (pathName.substring(0, pathName.indexOf('/')));
return domain+ webName+"/";
}
}
}
alert(webRootHelper.rootPath());
</script>
</html>
备注,如果网站不是子网站,
webRootHelper.isChild改为false;
当然在c#里
1.你可以使用服务器脚本语言@url.action,你的页面链接会被服务器 加载的的编译追加test/前缀,在js脚本里可用;
2.你也可以使用~前缀,如果你的子网站名为test,那么所有的链接的~都会变成test/前缀,js脚本不可用;
比较
以上两种发法都是运行在服务器上运行最终编译成浏览器执行的语言,而我们的js代码是运行在浏览器客户端,不需要服务器做任何处理。当然这种js写法是不适用三级站点的,而c#的写法支持。