我有一个现有的网站,我正在向其中添加 AJAX 哈希导航。有几种情况让我担心。
我正在使用链接的 onclick 事件在适当的时候更新哈希:
我的 updateHash 例程只是将哈希更新为 #!Galleries/Colored-Pencil/71/1/
所以 - 所有链接都适用于非 js 访问者......当哈希编码的链接出现在外部站点上时,问题就出现了。
问题
1)入站链接...假设有人复制并粘贴哈希编码的网址(即www.mysite.com/#!Galleries/Colored-Pencil/71/1/)。对于单击链接的非 JavaScript 访问者,我可以做些什么?在我看来,它们最终会出现在我的默认页面上。服务器不会知道客户端是否启用了 js 或任何关于请求的哈希的信息。我不得不想象没有解决方法...我将不得不显示主页。 除了显示默认主页外,还有什么方法可以支持偶然发现哈希编码 url 的非 JavaScript 访问者?
2)谷歌...由于我所有的网址都没有散列(仅用于js点击),我觉得我不需要实现散列链接的谷歌导航(即?_escaped_fragment_=方案)。 .. 但是包含散列导航的外部链接呢?我希望链接汁转到“普通网址”(没有哈希编码)。 我应该通过重定向到非编码网址来处理“?_escaped_fragment_=”调用吗? (这样做还可以防止 Google 索引中出现重复的内容)
我可以想办法缓解其中一些问题(建议永久链接,尝试拦截 url 的“复制”操作 [不确定是否可能或明智] 并替换为所需的 url) - 但我不喜欢这些选项并且不要'不打算调查它们...特别是因为仍然需要处理原始问题(作为出现在外部网站上的哈希编码 url)。
谢谢!