添加使用JavaScript URL哈希不滚动页面?(add a hash with javascr

2019-08-07 07:15发布

添加一个哈希网址不滚动页面? 用JavaScript

  1. 我打开页面
  2. 我向下滚动
  3. 我点击链接,增加了一个散列(也许用一个值#TEST)(例如: http://www.example.com/#test )
  4. 该页面必须不能回滚到顶部。

如何才能做到这一点?

注意:只是检查是否有可能禁用即使有一些标签使用id =“测试”至今回假动作; 工作正常(支持人没有的JavaScript),并且也避免了ID的在html的存在,但它不是的东西像数字的问题,如1,2,3(它们不允许作为ID的反正)

所有的答案都是伟大的,没有什么新的或开创性的,并就如何打破默认的功能没有任何解决方案,但它会做。 :)感谢您抽出宝贵时间来回答。

Answer 1:

未呈现网页上的任何哈希应该给你这种行为。 例如, 该链接指向一个不存在的哈希此页面上。 (链接使用Chrome 2.0和IE目前测试的6(我有提供给我的唯一的浏览器)。)

所以,如果您的网址是造成你去到页面的顶部,请确保您有一个ID或名字是地址在页面上什么都没有。



Answer 2:

无论下面的例子应该做你想要什么:

<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的预期不工作的一个小例子。



Answer 3:

每一个浏览器会解释哈希值“去那个DOM ID”。 你可以尝试两件事情我能想到的:

  1. 制作,增加了散列返回false,从而禁用需要浏览器来看看它的行动

  2. 添加DOM标签与您要添加正确的散列结果,其中点击是的ID,停止移动浏览器。 但可能这是不是你想要的,因为你要添加的哈希的东西。



Answer 4:

Welbog的回答能正常工作,但保留#nonexistantanchor散在浏览器的地址栏中。

要使用jQuery做到这一点,你可以添加一个类锚,并使用防止默认的方法来禁用这两个导航和变化的URL。

<a href='#' class="nodefault">Clickable</a>

<script>
$("a.nodefault").click(function(event) {
  event.preventDefault();
});
</script>

当然,美学窘境现在是在一个优雅的URL或自由JavaScript的溶液是否是优选的。



文章来源: add a hash with javascript to url without scrolling page?