添加一个哈希网址不滚动页面? 用JavaScript
- 我打开页面
- 我向下滚动
- 我点击链接,增加了一个散列(也许用一个值#TEST)(例如: http://www.example.com/#test )
- 该页面必须不能回滚到顶部。
如何才能做到这一点?
注意:只是检查是否有可能禁用即使有一些标签使用id =“测试”至今回假动作; 工作正常(支持人没有的JavaScript),并且也避免了ID的在html的存在,但它不是的东西像数字的问题,如1,2,3(它们不允许作为ID的反正)
所有的答案都是伟大的,没有什么新的或开创性的,并就如何打破默认的功能没有任何解决方案,但它会做。 :)感谢您抽出宝贵时间来回答。
未呈现网页上的任何哈希应该给你这种行为。 例如, 该链接指向一个不存在的哈希此页面上。 (链接使用Chrome 2.0和IE目前测试的6(我有提供给我的唯一的浏览器)。)
所以,如果您的网址是造成你去到页面的顶部,请确保您有一个ID或名字是地址在页面上什么都没有。
无论下面的例子应该做你想要什么:
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<a href="pleaseEnableJS.html"
onclick="window.location.hash = '#test1';return false;">Test 1</a>
<a href="#test2">Test 2</a>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
如果有任何元素id="test1"
或id="test2"
或<a name="test1"></a>
或<a name="test2"></a>
您的网页上,它会滚动该元素,否则,你要求它应该工作。
如果你有预期不工作代码,请编辑你的问题 ,包括HTML和JavaScript的预期不工作的一个小例子。
每一个浏览器会解释哈希值“去那个DOM ID”。 你可以尝试两件事情我能想到的:
制作,增加了散列返回false,从而禁用需要浏览器来看看它的行动
添加DOM标签与您要添加正确的散列结果,其中点击是的ID,停止移动浏览器。 但可能这是不是你想要的,因为你要添加的哈希的东西。
Welbog的回答能正常工作,但保留#nonexistantanchor
散在浏览器的地址栏中。
要使用jQuery做到这一点,你可以添加一个类锚,并使用防止默认的方法来禁用这两个导航和变化的URL。
<a href='#' class="nodefault">Clickable</a>
<script>
$("a.nodefault").click(function(event) {
event.preventDefault();
});
</script>
当然,美学窘境现在是在一个优雅的URL或自由JavaScript的溶液是否是优选的。