使用javascript检查URL是否包含值
我正在为我的网站开发一个功能,允许用户使用后退按钮,而不必加载更多的数据库结果 我从加载16个结果开始,然后有一个加载更多按钮加载下一个16个结果。在ajax success中,我更改了此按钮的href,使url更改为例如domain.com/#1到#2 我昨晚写了这封信:使用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
// 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
的信息