我需要根据网址末尾的内容向下滑动叠加层。
如果(URL末尾有'faq') { 覆盖下来 }
你怎么能在jQuery / JavaScript中做到这一点?
答案 0 :(得分:10)
如果您的网址类似于此http://yourdomain.com/faq
,则可以执行以下操作:
var url = window.location.href;
var lastPart = url.substr(url.lastIndexOf('/') + 1);
if (lastPart === "faq") {
// Show your overlay
}
这样就可以检查其他结局并对其采取行动。
<强>更新强>
要使其正常工作,即使URL有斜杠,您也可以创建如下函数:
function getLastPart(url) {
var parts = url.split("/");
return (url.lastIndexOf('/') !== url.length - 1
? parts[parts.length - 1]
: parts[parts.length - 2]);
}
然后,您可以调用getLastPart(window.location.href)
之类的函数来获取当前页面的URL的最后一部分。
以下是一个工作示例:http://jsfiddle.net/WuXHG/
免责声明:如果您的网址最后使用哈希值或查询字符串,则必须首先从网址中删除该网址,以使此脚本正常运行
答案 1 :(得分:9)
您应该能够使用带有正则表达式的window.location对象,如下所示:
/faq$/.test(window.location)
答案 2 :(得分:3)
ES6规范中添加了一种新方法if (!String.prototype.endsWith)
String.prototype.endsWith = function(searchStr, Position) {
// This works much better than >= because
// it compensates for NaN:
if (!(Position < this.length))
Position = this.length;
else
Position |= 0; // round position
return this.substr(Position - searchStr.length,
searchStr.length) === searchStr;
};
。对于以前的版本,我们可以使用
If (window.location.href.endsWith("faq")) {
// Show your overlay
}
现在你可以轻松编写
{{1}}
<强>参考:强> https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith
答案 3 :(得分:1)
您可以使用以下方式获取当前网址:
var currentUrl = window.location.href;
然后你可以使用indexOf检查你的令牌是否在字符串的末尾(这里是faq)
if (currentUrl.indexOf('faq') == currentUrl.length - 3)
{
// Do something here
}