【问题标题】:Take path from application root in javascript [duplicate]从javascript中的应用程序根目录获取路径[重复]
【发布时间】:2010-09-07 04:51:28
【问题描述】:
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 */
    }

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

【问题讨论】:

  • 而不是绝对路径....我会推荐使用上下文路径,所以如果你的页面在http://www.so.com/pages/one.aspx,你将使用/pages/one.aspx
  • 在这种情况下,如果某些内部文件夹中存在 javascript,我将不得不更改路径。
  • 你可以访问Url.RouteUrl()吗? (您将在 .NET 4.0 asp.net 应用程序中获得此信息)
  • @Alastair 你能给我一些参考吗。
  • @vaibhav 当您从根文件夹使用它时,您所在的目录并不重要。从根文件夹我的意思是我给你的例子/pages/one.aspx

标签: javascript asp.net jquery


【解决方案1】:

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

 <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>

这假定您的“/”地址由 Home 控制器中的 Index 方法处理(标准)。

然后您可以通过以下方式访问它:

$.url('Infringement/TaskDetail')

【讨论】:

  • 我必须写jQuery.url = function (path) { return '' + path; };在我的 javascript 文件中。或者它是 jquery 内部的。
  • 我个人将它添加到我的 javascript 文件之前的 Site.Master,因为这样我可以保证它会在它被使用之前运行。
  • 它为 jQuery 对象添加了一个新方法,很像 .NET 中的扩展方法
  • 好主意。但是,我会将代码更改为更像这样的代码,因为不是每个人都有家庭索引:return '&lt;%: Url.Content("~") %&gt;' + path;
  • @mattmc3:这是我的一个更干净的版本:)
【解决方案2】:

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

  • window.location.host :你会得到 sub.domain.com:8080sub.domain.com:80
  • window.location.hostname:你会得到sub.domain.com
  • window.location.protocol:你会得到http:
  • window.location.port :你会得到 808080
  • window.location.origin:你会得到http://sub.domain.com

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 2011-09-24
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      相关资源
      最近更新 更多