如果url是主页,则执行jquery

时间:2014-09-02 12:47:42

标签: javascript jquery asp.net

只有当它是主页时才需要触发jQuery代码。

网址概率

http://www.example.com
http://www.example.com/
http://www.example.com/default.aspx

如果以上任何一个网址我可以使用

,我该如何运行代码
var currenturl = window.location

但是每次我将代码移动到服务器时我必须更改这个,因为在本地主机上我的网址就像

http://localhost:90/virtualDir/default.aspx
在asp.net中我们可以使用各种

来获取它

HttpContext.Current.Request.Url.AbsolutePath  要么 HttpContext.Current.Request.ApplicationPath

我不确定jQuery中的等价物是什么

asp.net example

的参考

更新:

我采取了一种简单的方法,因为我找不到其他简单的方法

            var _href = $(location).attr('href').toLowerCase()
            var _option1 = 'http://localhost:51407/virtualDir/Default.aspx';
            var _option2 = 'http://www.example.com/Default.aspx';
            var _option3 = 'http://www.example.com/';
            if (_href == _option1.toLowerCase() || _href == _option2.toLowerCase() || _href == _option3.toLowerCase()) {
                $(".bar-height").css("min-height", "689px");
               // alert('aa');
            }
            else
            { //alert('bb'); }

2 个答案:

答案 0 :(得分:3)

您是否只能在需要的页面上添加脚本?即仅使用default.aspx中的<script type="text/javascript" src="homepage.js"></script>

如果没有,那么,正如dfsq所说 - 使用window.location.pathname

var page = window.location.pathname;
if(page == '/' || page == '/default.aspx'){
    // -- do stuff
}

您可以在最后一次斜线后获取该部分,以解释文件夹差异......

var page = window.location.toString();
page = page.substring(page.lastIndexOf('/'));

...但 example.com/default.aspx example.com/folder1/default.aspx 都是如此。

请记住,这个Javascript是客户端的,所以没有相当于您链接的C#示例。

答案 1 :(得分:0)

您可以使用我的approch确切地知道页面(也使用urlrouting)在javascript中使用它:

我使用body ID来识别页面。

javascript代码:

$(document).ready(function () {
    if (document.body.id.indexOf('defaultPage') == 0) {
        /*do something*/
    }
});

Asp.net代码:

主页或页面中的

(aspx):

...
<body id="<%=BodyId %>">
...
代码背后的代码:

private string _bodyId;
public string BodyId
{
    get
    {
        if (string.IsNullOrWhiteSpace(_bodyId))
        {
            var path = GetRealPagePath().TrimStart('/','~');
            int index = path.LastIndexOf('.');
            if (index > -1)
            {
                path = path.Substring(0, index);
            }
            _bodyId = path.Replace("/", "_").ToLower();
        }
        return string.Concat(_bodyId,"Page");
    }
}
public string GetRealPagePath()
{
    string rtn = Request.Path;
    if (Page.RouteData != null && Page.RouteData.RouteHandler!= null)
    {
        try
        {
            if (Page.RouteData.RouteHandler.GetType() == typeof(PageRouteHandler))
            {
                 rtn=((PageRouteHandler)Page.RouteData.RouteHandler).VirtualPath;
            }
            else
            {
                 rtn = Page.Request.AppRelativeCurrentExecutionFilePath;
            }
        }
        catch (Exception ex)
        {              
            Logger.Error(string.Format("GetRealPagePath() Request.Path:{0} Page.Request.AppRelativeCurrentExecutionFilePath:{1}", Request.Path, rtn), ex);
        }
    } 
    return rtn;
}