使用Javascript加载内容,但仍然保留到特定内容页面的唯一链接
Load content with Javascript, but still retain a unique link to specific content pages
我是一个网络新手,所以我会从表达我的问题开始,以防有比我试图实现的方法更好的解决方案。
我已经通过jQuery load()函数将我的网站内容更改为动态加载,这样就不会每次只有唯一的文档内容更改时都请求整个页面。然而,我希望该网站仍然可以像用户通过URL访问文档的直接地址一样,将用户带到特定的内容(这样用户就可以链接到特定的页面)。
我用URL参数实现了这一点,例如"&cat=1&page=2",并使用jQuery获得它们,并将正确的文件加载到#content区域。因此,当用户单击导航中的链接时,它会加载相关内容,并将页面的参数添加到URL中,就像我举的例子一样。
这是我的代码:
//Adding location params to URL when navigation link is clicked
$("#innerNavbar > ul > li > a").on('click', function(){
var cat = $(this).parent().parent().attr('id');
var page = $(this).attr('name');
var path = "categories/"+cat+"/"+page+".php";
window.location = "#?cat="+cat+"&page="+page;
$("#content").load(path);
});
//Get URL params and load correct page
var path = "categories/";
var cat = $.getUrlVar('cat'); //External code in getURLparams.js
var page = $.getUrlVar('page');
if (cat){
if (page){
path = "categories/"+cat+"/"+page+".php";
} else {
path = "categories/"+cat+"/index.php";
}
} else {
path = "categories/pages/index.php";
}
$("#content").load(path);
我遇到问题的具体代码是:
window.location = "#?cat="+cat+"&page="+page;
我使用这段代码将params添加到URL中,而无需重新加载页面(带有#标记),然而,如果用户已经在URL中有类似"#?cat=things&page=stuff"的内容,则#将意味着不会重新加载页面。
我可能已经把这件事弄得太复杂了,但长话短说,有没有一种方法可以在URL中添加params,而无需发送HTTP请求/重新加载页面,也无需在开始时使用#?
同样,如果有一个完全解决一般问题的方法,我会欢迎它:)
如果您不想像@Alejandro González提到的那样开始使用单页应用程序框架,那么最好在窗口上检查hashchange事件并调用函数
function processParams() {
var params = window.location.hash;
// do something with params
}
$(window).on('hashchange', processParams);
您想要实现的似乎更像是一个单页应用程序。有一些javascript库可以帮助您按照描述的方式构建应用程序。看看Sammy.js或History.js库。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 如何使用jQuery自动打开页面上的所有链接
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- jquery动画可以通过编程链接吗
- 在单击href链接的同时下载文件
- 尽管链接成功并已成功下载,但未找到NPM模块
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 单击页面上的链接后高度发生变化
- 将纯文本URL转换为可单击链接
- python-selenium-点击上升链接
- 向Graph中的所有d3.js数据点添加唯一链接
- DOM在指令中未就绪's链接功能.hacky Timeout是唯一的解决方案吗
- 如何生成一个唯一的链接,该链接将加载一个会话,其中包含客户端可用的某些文档
- 使用Javascript加载内容,但仍然保留到特定内容页面的唯一链接
- 我可以让数组中的每个图像都是唯一的链接吗?
- Fancybox唯一的url内联内容链接
- 如何使用具有唯一类名的jquery来定位链接
- 切换HTML链接文本'显示/隐藏'显示/隐藏用于注释的内联表单;创建唯一的标识符,这样页面上的所有评论链
- NodeJS mongo - 参考唯一生成的点击功能链接