我的网站上有一个CSS模态框,通过点击锚点打开,它看起来像这样:
<a href="#modal-box">Click here to open modal box</a>
一旦用户点击了它,模态框打开,他们发现自己在:http://example.com/modal-box
这,对我来说,代表了我的网站上的位置,所以我希望用户能够复制和粘贴该url到另一个浏览器,并得到相同的模态框弹出。
使用jquery,是否有一种方法来捕获片段ID,用户是在,然后采取行动,基于这一点?
如果你想做正确的(即后退按钮支持),那么你会想要捕获hashchange事件并对其进行操作,这个事件是由现代浏览器在URL片段发生变化时触发的。然而,并不是所有的浏览器都支持hashchange,所以你必须解决这个问题。您最好使用预构建的解决方案,例如:
- Ben Alman的hashchange插件。
- Sammy.js jQuery烧烤
基本的hashchange插件可能是你最好的选择,除非你正在构建一个具有复杂路由和参数处理的JavaScript应用程序。
你也可以一直观察location.hash
。但是,您必须找到相应的链接并模拟点击它以使浏览器正常工作。一旦你开始做这类事情,你可能最好使用上面的一个插件/框架和某种正式的路由系统。
你可能可以用jQuery,但你也可以使用本地JavaScript属性:location.hash
给你#modal-box