7

我需要根据 URL 末尾的内容来让叠加层向下滑动。

如果(URL 末尾有 'faq'){ 覆盖下降 }

你怎么能在 jQuery/JavaScript 中做到这一点?

4

4 回答 4

14

如果你的 URL 看起来像这样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/

免责声明:如果您的 URL 在末尾使用哈希或查询字符串,则必须先从 URL 中删除,以便此脚本正常工作

于 2012-10-10T11:40:28.637 回答
9

您应该可以通过正则表达式使用 window.location 对象,如下所示:

/faq$/.test(window.location)
于 2012-10-10T11:39:59.770 回答
4

endsWith()ES6 规范中添加了一个新方法。对于以前的版本,我们可以使用 polyfill

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
}

参考: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith

于 2017-10-05T17:45:16.200 回答
1

您可以使用以下方式获取当前 URL:

 var currentUrl = window.location.href;

然后您可以使用 indexOf 检查您的令牌是否在字符串末尾(此处为常见问题解答)

 if (currentUrl.indexOf('faq') == currentUrl.length - 3)
 {
  // Do something here
 }
于 2012-10-10T11:41:18.170 回答