网页中经常要做的一件事情就是让一个链接来执行一个 JavaScript 脚本,例如:< href="#" onClick="some_js_here();">Some text</a>,不过这样的副作用是因为有 href="#"。所以导致点击完后页面会滚动到最上面。
以前用的几种解决方案:
- 不写 href,这样会导致很多浏览器不会把 a 标签按照你预期的方式渲染;
- 在href 里面直接写 JavaScript 脚本,这样不完全符合 W3C 的规范。
其实要解决这个问题,不让浏览器把页面滚动到最上面,很简单,href="" 里面 多写几个 # 就行了,我一般用 6 个比较保险,这个方法适用于 IE5、IE6、IE7、FF2、FF3。虽然不知道为什么但是很好用。猜测是因为 # 表示进行页内书签的跳转,但是多个 # 浏览器就不知道什么意思了,干脆罢工好了,哈哈。