javascript - 如何检查用户是否正在访问网站的根网址?

标签 javascript asp.net asp.net-mvc-3 razor

如果用户正在访问我网站的根 URL,我想启动一些脚本。

比如我想在用户访问时在我的 View 中做一些事情

  • www.example.com
  • example.com
  • www.example.com/
  • http://www.example.com
  • http://example.com

...[上述的各种组合。]

不适用于www.example.com/anything
在 ASP.NET MVC 3 [Razor] 网站和 javascript 的 View 页面中检查此内容的最安全方法是什么?另外,有没有什么方法可以仅使用 javascript 来查找?
谢谢。

最佳答案

最简单的 JavaScript 方法是:

var is_root = location.pathname == "/"; //Equals true if we're at the root

即使 http://example.com/?foo=bar#hash 也会产生正确的结果,因为路径名不包括查询字符串和位置哈希。

看看:

http://anything-but-a-slash/                  Root
                           /?querystring      Root
                           /#hash             Root
                           /page              Not root

如果您的根文件夹中有索引文件,请查看以下示例:

var is_root =/^\/(?:|index\.aspx?)$/i.test(location.pathname);

上一行使用正则表达式。特殊字符必须转义,/i 后缀使模式不区分大小写。如果您希望大小写匹配,请省略 i 标志。

以图形方式呈现相同的正则表达式:

Regular expression visualization

关于javascript - 如何检查用户是否正在访问网站的根网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8100515/

相关文章:

javascript - Sinon - 监视构造函数方法

javascript - 将函数放入 javascript 对象中是一种好习惯吗?

c# - 如何在 MVC C# 网站中识别我的主页是从哪里加载的(即调用 URL)

dynamic - MVC-3 和 Dynamic - @Html.Label(View.X) 不渲染

Jquery ajaxStart 和 blockUI

c# - EF lambda : The Include path expression must refer to a navigation property

javascript - 表中的 jQuery Accordion

javascript - 改变 richselect 的输入颜色

asp.net - ASP --> ASP.Net : Refactoring steps

c# - ASP.NET Web 应用程序 - 自从从 mysql 切换到 access db 以来,我的数据库连接出现问题