在javascript和锚中使用URL哈希



我们在应用程序的某些地方使用URL散列来过滤显示,例如#highlight=free将突出显示我们的免费内容。我们使用javascript来处理哈希,监听哈希的变化。

我们想知道如何将它与"真正的"HTML锚链接混合在一起。即指向页面上特定html id的链接,例如#chapter-5

我们是否应该使用javascript实现跳转到正确的位置,并停止依赖默认的浏览器行为?例如,链接到#chapter=chapter-5&highlight=free和处理过滤器和锚在javascript?或者是否有一种安全/标准的方式来"混合"锚和自定义散列?

如果你的目标环境允许,那么"安全/标准的方法"将是使用传统的哈希方法(通常被视为"hashbang")来代替常规的页面内锚,而使用现代的HTML5历史API。

如果你必须支持旧的浏览器,你可以使用一些polyfill来返回那个散列。

对这个问题的评论可能是迄今为止最有帮助的,所以我们选择实现锚跳并处理javascript中的#之后的一切,而不依赖于浏览器的内置支持。

对于那些感兴趣的人,我们使用jquery.deparam, URI.js和一些自定义代码的组合来监听哈希变化并挂钩到我们自己的函数。我们还使用了Hasher.js,它看起来不错,所以我们将来可能会使用它。

相关内容

  • 没有找到相关文章

最新更新