我正在制作一个所有ajax网站,并使用jQuery .load()
加载我的网页。我在加载新页面时也在更改网址,因此我的帐户网址如下所示:http://mysite.com/#!/account/
我的主屏幕看起来像http://mysite.com/#!/
。这是我目前使用的代码:
var oldLoc = window.location.hash.replace(/^#\!/,"");
if (oldLoc == '/account/') {
$('#reload_section').load('account.php');
} else if (check for other urls) {
}
这一切正常,直到我在那里搜索。当用户提交搜索表单时,该网址会更改为此http://mysite.com/#!/search/objects/Query Here
,其中对象具有2个值objects
和files
。如何合并正则表达式以将搜索网址分成三个部分,但如果它只是http://mysite.com/#!/accounts
或http://mysite.com/#!/
,则也可以使用。另外,我如何找到搜索参数,如果我搜索Taco Truck,则url会将其反映为http://mysite.com/search/objects/taco%20truck/
。
我正在考虑使用这个:
var oldLoc = window.location.hash.replace(/^#\!/,"");
var m = /([\/^\/]+\/)([^\/]+\/)([^\/]+)/.exec(oldLoc);
if (oldLoc == '/account/') {
$('#reload_section').load('account.php');
} else if (m[1] == '/search/') {
if (m[2] == 'objects/') {
currentQuery = 'objects';
} else if (m[2] == 'files/') {
currentQuery = 'files';
}
}
谢谢!
P.S。我之所以这么说的原因是,如果我不提它,那么正则表达式可能会破裂。