刚刚进入网络编程,当谈到导航时,到目前为止,我更喜欢使用Javascript和AJAX请求来改变菜单链接点击时的内容。它速度很快,没有页面刷新,很棒。唯一的问题是该网站的网址始终保持不变。例如,我不能将某人链接到“关于”页面。解决这个问题的标准方法是什么? 我目前只使用HTML,JavaScript和jQuery。使用AJAX进行可链接导航?
回答
通常你会用一个二方法。取决于您需要支持的一组浏览器:
更改哈希值 - 您可以在不重新加载页面的情况下更改网址(http://.../index.html#about-page
)的哈希部分。因此,举例来说,当你点击“关于”链接,就可以设置URL的哈希值与类似这样的东西:
window.location.hash = 'bla-bla';
当你的页面加载,你解析散列部并进行必要的逻辑:
if (window.location.hash === 'about-page') {
// ...
}
另一种方法是使用“历史API” - 在现代浏览器中,你可以使用一个叫做“历史API”的API,它允许您更改浏览器的历史记录,包括URL。您可以使用该history
对象上调用pushState
方法,例如:
window.history.pushState({ event: 'event-id' }, "Event Title", "?event=event-id");
进一步的细节,你可以看到一个以前的答案我已经张贴在过去: How to manage browser "back" and "forward" buttons when creating a javascript widget
谢谢,我会研究。看起来历史API比较灵活,因为您还可以与用户前进/后退一起工作,但代价是不适用于旧版浏览器? – 2014-11-22 02:50:19
真的取决于你使用的框架。这始终是JSF的经典批评,它与使用Put请求作为其通信方法的一部分具有相同的效果。他们在以后的版本中提出了一些改变。
但是,是否有标准的方法很难说,毫不含糊。我已经在策略上看到了Put请求。这会改变网址,但它是你完全避免的提交。
一些JavaScript库允许你自己修改网址。我不记得我们使用了哪些。
在任一CAE您的应用需要满足此深导航,因为你给用户直接移动到页面的能力,他们可能没有能够事先
YUI库是我过去用来编辑浏览器网址的网页。虽然已经有一段时间了。有可能有更好的工具 – EdH 2014-11-22 01:57:30
- 1. 如何使用符号链接进行导航?
- 2. 在Richtextbox中使用导航进行超链接
- 3. AJAX导航 - 故障与永久链接
- 4. plogger导航链接
- 5. 使用Bootstrap导航本地链接
- 6. 导航链接不可点击
- 7. 独立主导航链接从CSS导航子链接?
- 8. 我们应该使用JQuery进行Mobile AJAX页面导航吗?
- 9. 使用typemock进行链接
- 10. 使用Bootstrap中的词缀沿导航链接推送链接
- 11. 导航链接前运行查询
- 12. 如何使用jsoup从站点获取可导航链接?
- 13. 在导航列表和标题之间进行链接
- 14. 导航链接没有链接
- 15. 使用jQuery库Packery进行卡布局我可以使用导航链接重新订购
- 16. 使用jQuery导航Ajax
- 17. 使用C进行图形导航#
- 18. 使用Bootstrap进行页面导航
- 19. 使用下拉列表进行导航
- 20. 如何使用android进行gps导航
- 21. 使用next/prev进行网站导航
- 22. 使用JavaScript代码进行导航(InnerHTML)
- 23. 使用AngularJS进行导航$ routeProvider + OnsenUI ons.navigator.pushpage()
- 24. 使用Kinect进行机器人导航
- 25. 使用PHP进行导航处理
- 26. 使用阵列进行导航
- 27. 如何使用uialertiew进行导航?
- 28. 使用JQuery进行页面导航
- 29. Bootstrap导航链接故障
- 30. 居中导航链接
实现一个“正确”的页面结构,它首先不需要AJAX,然后只把AJAX放在最上面。搜索引擎也会更好。而HTML5 History API有助于在地址栏中更改可见的URL。 – CBroe 2014-11-22 01:45:47