从javascript中的应用程序根获取路径

从javascript中的应用程序根获取路径,javascript,asp.net,jquery,Javascript,Asp.net,Jquery,我编写了一个javascript函数loadPage(),它需要一个指向某个页面的路径作为参数。我需要从应用程序根目录中指定此路径。我不想要相对路径。请让我知道我该怎么做。我的Site.master中有这段Javascript,就在jquery导入的下面,上面是对我自己脚本的任何引用 function detailed_link(cell_rowid) { var $tabs = $('#infrTab').tabs(); $tabs.tabs('select',

我编写了一个javascript函数loadPage(),它需要一个指向某个页面的路径作为参数。我需要从应用程序根目录中指定此路径。我不想要相对路径。请让我知道我该怎么做。

我的Site.master中有这段Javascript,就在jquery导入的下面,上面是对我自己脚本的任何引用

function detailed_link(cell_rowid) {
        var $tabs = $('#infrTab').tabs();
        $tabs.tabs('select', 1); // switch to third tab~
        objRowData = $('#' + pageGridId).getRowData(cell_rowid);
        //document.getElementById("Name").value = objRowData.amount;

        loadPage('Infringement/TaskDetail', 'taskDetails'); /* Path */
    }

假设您有一个包含以下地址的页面:
http://sub.domain.com/page.htm
。使用以下页内代码获得这些结果:

  • window.location.host
    :您将获得
    sub.domain.com:8080
    sub.domain.com:80
  • window.location.hostname
    :您将获得
    sub.domain.com
  • window.location.protocol
    :您将获得
    http:
  • window.location.port
    :您将获得
    8080
    80
  • window.location.origin
    :您将获得
    http://sub.domain.com

我建议使用相对路径,因为您永远不知道应用程序根在哪里。如果您的应用程序将与IIS中的其他应用程序一起安装,则其根目录可以是例如
http://www.domain.com/iis/youapp/pages/one.aspx

而不是绝对路径。。。。我建议使用上下文路径,因此如果您的页面位于
http://www.so.com/pages/one.aspx
您将使用
/pages/one.aspx
在这种情况下,如果javascript存在于某些内部文件夹中,我将不得不更改路径。您是否有权访问
Url.RouteUrl()
?(你会在.NET 4.0 asp.NET应用程序中看到这个)@Alastair你能给我一些参考资料吗。@vaibhav当你从根文件夹使用它时,你所在的目录并不重要。从根文件夹中,我的意思是,正如我给你的示例所示,我是否必须编写jQuery.url=function(path){return'+path;};在我的javascript文件中。或者它是jquery内部的。我个人将它添加到我的javascript文件之前的Site.Master中,因为我可以保证它将在使用之前运行。它将向jquery对象添加一个新方法,就像.NETGreat idea中的扩展方法一样。但是,我会将代码更改为类似的内容,因为不是每个人都有一个主索引:
return'+path@mattmc3:这是一个比我的更干净的版本:)
 <script type="text/javascript">
        //Function that provides a relative URL for cases of virtual directories.
        jQuery.url = function (path) {
            return '<%: Url.Action("Index","Home") %>' + path;
        };
 </script>
$.url('Infringement/TaskDetail')