我正在使用jquery ajax使用第三方api搜索某些内容。一旦找到了什么,它就会向屏幕返回一堆数据。我要做的是根据URL调用search
函数,我不熟悉使用Ajax处理动态URL。
例如,如果我通过按钮搜索shoes
,则网址应更改为localhost/search=shoes
。但是,如果我实际在地址栏中键入相同的URL,则应使用search
的查询调用shoes
函数。
有人能指出我如何处理这个问题的正确方向吗?
var search = function( query ){
$.ajax({
url: 'ajax base url' + query,
data: {
q: query,
// etc
},
}).done( function(){
console.log('Do something with data');
});
};
$('.btn-search').on('click', function(e){
e.preventDefault();
var data = $(this).text();
search( data );
});
答案 0 :(得分:0)
如果字符串是完整的网址或只是查询,您可以使用regexp进行检查,最简单的示例可以使用此正则表达式:localhost\/search=(.*)
。
要使用此正则表达式,您应使用String.match函数
之后你应该调用函数取决于switch语句
的查询答案 1 :(得分:0)
您只需
即可设置网址window.location = "localhost?search=shoes";
如果您访问此页面,可以使用GetURLParameter帮助函数检查document.ready中的URL获取参数
$( document ).ready(function() {
var search = GetURLParameter("search");
if(search){
console.log('Do something with data');
}
});
function GetURLParameter(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}