javascript获取“浏览器地址栏”中显示的路径名称

时间:2011-05-19 02:48:25

标签: javascript asp.net-mvc model-view-controller

是否有任何方法可以使用javascript获取所请求的路径(浏览器地址栏中显示的路径)与子域的重定向路径(对用户隐藏)

我正在使用一个共享的javascript文件(在多个页面和站点之间共享),它使用window.location.pathname来确定控制器和操作(MVC)但是...我刚刚发现自己的部署在我没有在Visual Studio开发环境中表示的域。我的主机上的子域通常会重定向到/ subdomain文件夹,但现在我的window.location.pathname拉回/ subdomain / controller / action,而地址栏中的URL是/ controller / action

显然我可以调整我的javascript来处理这种情况 - 但是可能并不总是有一个子域(至少在我的开发环境中,如果没有别的 - 而且我已经死了反对像我的代码中有“isdev”样式标志的解决方案)所以我必须为这些实例进行故障转移,这意味着事情开始变得更加复杂,因此更容易出错。

任何建议都非常感谢。

顺便说一下,我不想使用.Net中的值,例如HttpContext ...因为我的js在外部文件中,我不想在视图中创建对数据的依赖,因为这意味着每次我在新页面上使用js时我必须记住包括视图中的其他逻辑可以工作,另外如果我更改了我的js文件,也可能导致我不得不重构一堆视图。

干杯 罗布

1 个答案:

答案 0 :(得分:1)

window.location.href应该返回该网站当前所在的整个网址,包括子网域e.g. http://subdomain.site.com/path/to/page.aspx

或者你可以使用window.location.host,它将返回路径以外的所有内容,或者window.location.pathname只返回文件的相对路径。

有关更多信息,请参阅有关window.location的MDC文章:https://developer.mozilla.org/en/DOM/window.location