使用javascript检查URL是否包含值
Checking if a URL contains a value with javascript
我正在为我的网站做一个功能,允许用户使用后退按钮,而不必加载更多的数据库结果。
我首先加载16个结果,然后有一个load more按钮加载下一个16。在ajax成功时,我改变了这个按钮的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 $_GET并从该值中设置最后一个值。
这很好。但它很原始。例如,我推回去,URL变成:
www.domain.com/?page=1
如果我然后点击加载更多的数据,页面url变成:
www.domain.com/?page=1#2
如果用户随后访问另一个页面并返回,那么他们将被定向到:
www.domain.com/?page=1&page=1
这个问题最好的解决方法是什么?我正在考虑运行一个检查URL的同时寻找一个片段,如果URL有一个页面变量I然后将该变量添加到片段变量和页面URL变成?page= the SUM NUMBER
有什么帮助修改片段我张贴在上面检查URL的页面值,然后在重定向之前将两者加在一起?
谢谢!
您需要使用location.search
来获取URL上的查询字符串:
var queryParameters = location.search.split('&');
然后可以遍历queryParameters并检查是否设置了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;
}
}
请参阅MDN上的文档:
https://developer.mozilla.org/en-US/docs/Web/API/Window.location
您可能还会发现这个示例对于返回一个值很有用:
https://developer.mozilla.org/en-US/docs/Web/API/Window.location Example_.236.3A_Get_the_value_of_a_single_window.location.search_key.3A
如果要获取#
之后的信息,则需要使用location.hash
。我链接的MDN文档也有关于location.hash
的信息。
相关文章:
- immutablejs:查找映射是否包含键值
- 谷歌脚本查看文本是否包含值
- 检查对象数组是否包含布尔值true/false
- 检查值是否包含字符串字符
- 根据对象中的值是否包含字符串来删除该值
- JavaScript 来检查 HTML 输入值是否包含字母和数字
- Javascript:如何检查数组是否包含某些值
- 测试数组是否包含八个 3 键值中的任何一个 - 井字游戏
- 如何检查javascript变量中的值是否包含数字
- 检查是否所有返回的数组都包含值 false
- 如何检查json对象是否包含值
- 检查变量是否包含数组的任何值
- 如何检查数组是否已设置并同时包含值
- JavaScript/jQuery检查数组是否包含所有特定值
- 检查对象是否包含带值的属性
- 使用Javascript检查JSON对象是否包含值
- 检查数组是否包含值?(我已经尝试了一些技巧,但我还是有点迷路了)
- 使用javascript检查URL是否包含值
- 如何检查iFrame中是否包含值
- Javascript检查数组是否包含值