我正在尝试制作类似谷歌地图方向模块的东西,但我坚持使用模块的URL部分。我面临的问题是每次用户从自动建议结果中选择内容时都要更改URL,因此每次都会创建新的历史记录。所以按下后退按钮会生成我不希望的URL。我还使用了replacesate()
,但它改变了我之前的网址。请参阅谷歌地图以了解我的问题。
我更改网址的方式是
window.history.pushState("", title, newUrl);
假设我第一次搜索德里到阿格拉。然后我搜索了一些其他组合。选中后,我正在更改URL。按下后退按钮不会让我得到delhi到agra的结果,而是显示我选择时更改了url的结果。我希望我已经解释了我的问题。
用于更改每个选择的URL的函数是
var call_url = function(title, req_url, inputId)
{
if(!title)
{
title = req_url.replace('place-','');
}
var url = window.location.toString().split('/');
var curl = url.slice(-1)[0];
if(curl != req_url)
{
if($.inArray("direction", url) !== -1 || url[4].indexOf("direction-") !== -1) // check to handle direction url
{
var elementId = ($(':focus')[0]) ? $(':focus')[0].id : inputId;
if(elementId && (elementId == 'auto_start' || elementId == 'auto_end' || elementId.indexOf('via') !== -1))
{
newUrl = directionUrl(req_url, url[4], elementId);
}
else
{
newUrl = req_url;
}
}
else
{
newUrl = req_url;
document.title = title.replace(/\-/g,", ").replace(/\+/g," ");
}
window.history.pushState("", title, newUrl);
}
};