我不确定这是否可以在没有任何服务器的javascript中完成。
基本上,我使用Google Maps API在同一页面上生成某些搜索结果,我希望能够创建一个共享按钮,这样当用户点击它时,它会生成一个自定义链接,如www .example.com的/?搜索=阿纳海姆。然后,当用户或其他用户在地址栏中键入该URL时,将生成包含这些结果的页面。
现在,我只在一个html页面上进行搜索,而且我不知道如何制作它以便通过输入链接,它可以更改我的一个html页面的默认主页位置?或者,这是不可能的,我应该做别的事情?
任何建议都将不胜感激。谢谢!!
编辑:这可能有点令人困惑。但基本上,我希望能够以与谷歌地图生成它们相同的方式生成链接,当您单击链接按钮时。
答案 0 :(得分:0)
您正在寻找的是生成' Deeplinks'
http://en.wikipedia.org/wiki/Deep_linking
您可以在客户端进行此操作。
我建议使用一个好的JS框架来正确解释url并产生相同的结果。
E.g。
我没有足够的Google地图使用经验,但您的JS Framework应该调用GoogleMaps(可能是AJAX),并生成唯一的URL
然后,可以使用这些唯一的URL来跟踪您的应用程序。当您的框架正确解释网址时,他们应该对GoogleMaps进行相同的API调用,它是第一次生成网址。
答案 1 :(得分:0)
jQuery BBQ(API docs)是我最喜欢的工具。
只需为hashchange
添加一个事件监听器:
$(window).bind('hashchange', function(e) {
var q = $.bbq.getState('q');
if (q) {
// do your Google Maps search for `q`
}
});
首次加载页面时触发hashchange
。 (该事件不会在页面加载时自动触发,仅在URL更改时 - 无论是以编程方式还是由用户摆弄URL)
$(window).trigger('hashchange');
现在打开 example.com/#q=Anaheim 将搜索阿纳海姆。
对于奖励积分:我假设您的页面有一个文本框,当用户按下Enter键(和/或单击按钮)时会调用该功能。请使用pushState
将搜索字词添加到网址,而不是直接调用搜索功能。 (您的页面不会重新加载。)这将使其立即可收藏,因为用户可以将页面添加到他们的书签或从浏览器的地址栏复制URL。
// on key 13 / search button click:
$.bbq.pushState({ q: $('#searchTerm').val() });
这就是你所需要的一切。 hashchange
处理程序从那里开始。