使用javascript检查URL是否包含值

使用javascript检查URL是否包含值,javascript,php,jquery,url,fragment,Javascript,Php,Jquery,Url,Fragment,我正在为我的网站开发一个功能,允许用户使用后退按钮,而不必加载更多的数据库结果 我从加载16个结果开始,然后有一个加载更多按钮加载下一个16个结果。在ajax success中,我更改了此按钮的href,使url更改为例如domain.com/#1到#2 我昨晚写了这封信: // First get the page URL and split it via # signs var parts = location.href.split('#'); // now we run a check

我正在为我的网站开发一个功能,允许用户使用后退按钮,而不必加载更多的数据库结果

我从加载16个结果开始,然后有一个加载更多按钮加载下一个16个结果。在ajax success中,我更改了此按钮的href,使url更改为例如domain.com/#1到#2

我昨晚写了这封信:

// First get the page URL and split it via # signs
var parts = location.href.split('#');

// now we run a check on the URL and see how many 'parts' there are
if(parts.length > 1)
{
  var params = parts[0].split('?');
  var mark = '?';
  if(params.length > 1)
  {
    mark = '&';
  }
  location.href = parts[0] + mark + 'page=' + parts[1];
}
它获取URL,并将用户重定向到同一页面,但将片段号转换为页码。然后,我使用一个PHP$\u GET并从中设置limit claus last值

这个很好用。但它很原始。例如,假设我向后推,URL变为:

www.domain.com/?page=1
如果然后单击以加载更多数据,页面url将变为:

www.domain.com/?page=1#2
如果用户随后访问另一个页面并返回,则他们会被引导到:

www.domain.com/?page=1&page=1
最好的解决办法是什么?我想在查找片段的同时对URL进行检查,如果URL有一个页面变量,那么我将该变量添加到片段变量中,页面URL变为?page=总和

关于修改我在上面发布的代码片段以检查URL中的页面值,然后在重定向之前将两者添加到一起,有什么帮助吗


谢谢

您需要使用
location.search
获取URL上的查询字符串:

var queryParameters = location.search.split('&');
然后,您可以循环查询参数并检查是否设置了
page

var pageNumber = 0;
for(var i = 0; i < queryParameters.length; i++)
{
    var keyvaluePair = queryParameters[i].split('=');
    if(keyvaluePair[0] == 'page')
    {
        pageNumber = keyvaluePair[1];
        break;
    }
}
var pageNumber=0;
对于(变量i=0;i
请参阅MDN上的文档:

您可能还发现此示例对于返回一个值非常有用:

如果要在
#
之后获取信息,需要使用
location.hash
。我链接的MDN文档中还有关于
location.hash
的信息