如何实现#!基于链接?

发布于 2024-12-02 12:11:08 字数 350 浏览 5 评论 0 原文

我一直想知道如何在 URL 中使用 ##! 即时浏览页面。许多网站(例如 Google)都在 http://www.google.com/nexus/ 上使用它,当用户单击任何链接,不会发生任何变化,内容会立即打开,仅 URL 发生变化,例如:www.example.com/#contactwww.example.com/#home

我怎样才能用我的 8 个页面做到这一点? (主页、功能、价格、联系方式、支持)

I always wondered how to instantly navigate through pages using # or #! in URLs. Many websites like Google are using it on http://www.google.com/nexus/ , when user click any of the links, nothing changes and things open instantly, only URL changes, for ex: www.example.com/#contact or www.example.com/#home

How can I do this with 8 of my pages? (Home, Features, Rates, Contact, Support)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

别理我 2024-12-09 12:11:08

您可能想看一下基本的 AJAX 教程(例如 http ://marc.info/?l=php-general&m=112198633625636&w=2)。 URL 使用 #! 的真正原因就是让它们被谷歌索引。如果您希望 Google 将 AJAX 处理的 URL 编入索引,则必须实现对 _escaped_fragment_ 的支持(请参阅:http://code.google.com/web/ajaxcrawling/docs/specification.html)。

You may want to take a look at a basic AJAX tutorial (such as http://marc.info/?l=php-general&m=112198633625636&w=2). The real reason the URLS use #! is to have them get indexed by google. If you want you AJAX'ed URLs to be indexed by Google, you'll have to implement support for _escaped_fragment_ (see: http://code.google.com/web/ajaxcrawling/docs/specification.html).

淡淡の花香 2024-12-09 12:11:08

使用此选项的唯一原因是在 url 中显示 AJAX 增强页面的状态。这样,您可以复制该 url 并将其添加为书签,以返回到相同的状态。

旧版浏览器不允许您在不重新加载页面的情况下更改地址栏中的 URL。最新的浏览器可以(搜索 PushState)。要解决此问题,您可以更改 url 的哈希值。这是通常用于跳转到锚点的部分,但您可以使用 JavaScript 将其用于其他目的。

! 对于此过程并不是绝对必需的。 ! 是由 Google 实现的。它允许对这些 url 进行索引。通常,散列不会单独索引,因为它们仅标记同一页面的不同部分(锚点)。但通过添加 !,您可以创建 shebanghashbang,它们会被 Google 编入索引。

这里不解释所有内容,当你搜索 Ajax、HashBang 和 PushState 时,你应该会找到很多信息。

添加:检查 History.js。它是 PushState api 的包装器,在旧版浏览器上使用哈希值。

The only reason this is used, is to show the state of an AJAX enhanced page in the url. This way, you can copy and bookmark the url to come back to the same state.

Older browsers don't allow you to change the url in the address bar without the page being reloaded. The latest browsers do (search for PushState). To work around this, you can change the hash of the url. This is the part that is normally used to jump to an anchor, but you can use it for other purposes using JavaScript.

The ! isn't strictly necessary for this process. The ! is implemented by Google. It allows these urls to be indexed. Normally hashes aren't indexed separately, because they mark only a different part of the same page (anchor). But by adding the !, you create a shebang or hashbang, which is indexed by Google.

Without explaining everything here, you should find a lot of information when you search for Ajax, HashBang and PushState.

Addition: Check History.js. It is a wrapper for the PushState api, that falls back to using hashes on older browsers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文