从地址栏中获取页面文件名

时间:2011-12-13 22:21:30

标签: javascript jquery html

我想知道是否可以使用jquery或javascript从地址栏中获取页面名称。我知道这可以使用PHP完成,但不是真的想要,因为它只是一个HTML网站。

即。如果地址为www.mywebsite.com/hello.htm,我如何从地址中获取hello.htm部分。

感谢您提供的任何帮助。

7 个答案:

答案 0 :(得分:59)

试试这个

location.pathname.substring(location.pathname.lastIndexOf("/") + 1);

location.pathname给出页面网址的部分(未包含域名)。要仅获取文件名,您必须使用substring方法对其进行夸大。

答案 1 :(得分:53)

https://developer.mozilla.org/en/DOM/window.location

alert(location.pathname)

如果您不想要前导斜杠,可以将其删除。

location.pathname.substring(1)

答案 2 :(得分:5)

当前页面:单行声音更加优雅,可以找到当前页面的文件名:

location.href.split("/").slice(-1)

location.pathname.split("/").slice(-1)

这很容易定制导航框的链接,因此当前的链接是由CSS类启发的。

<强> JS:

$('.menu a').each(function() {
    if ($(this).attr('href') == location.href.split("/").slice(-1)){ $(this).addClass('curent_page'); }
});

<强> CSS:

a.current_page { font-size: 2em; color: red; }

答案 3 :(得分:4)

试试这个:

var pageName = (function () {
        var a = window.location.href,
            b = a.lastIndexOf("/");
        return a.substr(b + 1);
    }());

答案 4 :(得分:2)

Location对象是你的朋友:

var pageName = location.pathname.substring(1);

http://www.w3schools.com/jsref/obj_location.asp

答案 5 :(得分:1)

document.URL.match(/[^\/]+$/);

只是一个简单的选择。

document.URL 会返回文档的位置 .match() 是一种使用 Regular Expression 过滤字符串的方法。
/[^\/]+$/在最后一次出现的斜杠/之后开始提取字符串的其余部分。

<强> demo

答案 6 :(得分:0)

我遇到了需要删除querystring参数(?)和/或锚点(#)标记的问题。我是这样做的:

var path = window.location.pathname.toLowerCase();
// find the end of path prior the Query and Anchor designations. strip off everything after the ? or #.  
//      if the ? is first, then use ?, else use the #, else use the string length.
// then replace all \ with /
// then split it into an array based on /
var pagePathAry = path.substr(0, path.indexOf("?") > -1 && path.indexOf("?") < path.indexOf("#") ? path.indexOf("?") : path.indexOf("#") > -1 ? path.indexOf("#") : path.length).replace("\\", "/").split("/");
// get the folder it's in
var subFolder = pagePathAry[pagePathAry.length - 2];
// get the page name
var pageName = pagePathAry[pagePathAry.length - 1];