我想知道是否可以使用jquery或javascript从地址栏中获取页面名称。我知道这可以使用PHP完成,但不是真的想要,因为它只是一个HTML网站。
即。如果地址为www.mywebsite.com/hello.htm
,我如何从地址中获取hello.htm
部分。
感谢您提供的任何帮助。
答案 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);
答案 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];