现在,当用户在文本字段中输入单词并点击搜索时,表单将使用$.get()
提交。从服务器获取数据(JSON),然后更新UI。
我想要做的很简单:
1)当表单提交时,浏览器的URL需要更新(类似search/zyx
,zyx
是用户正在搜索的内容。)
2)当页面被预订到收藏夹中,或者从页面需要加载的某个地方点击链接,然后文本字段值必须是' zyx'。此外,用户界面还需要显示zyx
的搜索结果。
这对我的应用非常重要,因为我将使用Google Analytics。因此需要URL来反映行为。加上其他问题,如后退按钮历史记录。这可能只使用jQuery或一些构建在jQuery上的极轻的库。我到处搜索,我找到的所有解决方案都使用MVC框架。或者另一种解决方案是使用像this one这样的模板框架。但是我的应用程序对于这些解决方案来说太简单了。
答案 0 :(得分:1)
答案 1 :(得分:0)
阅读这篇文章:https://rosspenman.com/pushstate-jquery/
或考虑使用PageJs
答案 2 :(得分:0)
因此,您需要的方法是在URL中监听哈希更改,并根据此获取当前页面并将其呈现在一个投币器中。像这样:
<a href="#page2">Go to Page 2</a>
<div class="page-container"></div>
<script>
$(window).on('hashchange',function(){
var page = window.location.hash;
$.get('pages/'+page+'.html', function(pageContent){
$('.page-container').html(pageContent);
})
});
</script>
答案 3 :(得分:0)
谢谢大家。所以我最终使用了@Tulio Faria
的答案和@Gabriele Mantovani
之间的组合。
window.location.hash
history.pushState({id: 'query'}, '', 'some_url_string');
$(window).on('hashchange',function(){...})
加载当前搜索关键字的页面答案 4 :(得分:0)
简单的jQuery,基于javascript的路由。
<html>
<head>
<title>KCS Website australia</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<a href="#/about">About</a> | <a href="#/contact">Contact Us</a>
<div class="page-container"></div>
</body>
<script>
$(window).on("hashchange", function () {
var page = window.location.hash;
console.log(page.substring(2));
$.get("pages/" + page.substring(2) + ".html", function (pageContent) {
$(".page-container").html(pageContent);
});
});
</script>
</html>