【问题标题】:# anchors behavior when baseurl is defined# 在定义 baseurl 时锚定行为
【发布时间】:2014-09-14 04:16:48
【问题描述】:

我习惯于在开发过程中使用href="#" 作为占位符链接,因此如果您不小心点击它,什么都不会发生,并且它不会在测试页面时跳转页面,即您确切知道哪个是占位符,哪个是链接断开。

但是,当 baseurl 定义在头部时,href="#" 会获取 baseurl 地址而不是当前页面,并在末尾附加 #。这会导致占位符链接始终加载索引页面。烦人。

<!doctype html>
<html>
<head>
<base href="http://localhost">
</head>
<body>
<p><a href="#">placeholder # only</a></p>
<p><a href="">empty string</a></p>
</body>
</html>

除了在&lt;a&gt;href 中指定完整路径之外,有没有办法恢复“占位符”行为?

【问题讨论】:

    标签: html hyperlink base-url


    【解决方案1】:

    用 javascript 来做:

    function onClick(event) {
      document.getElementById('id').scrollIntoView({
        behavior: 'smooth'
      });
    }
    

    https://stackoverflow.com/a/48901013/4185912

    【讨论】:

      【解决方案2】:

      如果您目前正在开发中,我建议您删除您的基本标签。 它定义了该页面上所有锚标记的行为。了解更多信息 : http://www.w3schools.com/tags/tag_base.asp

      【讨论】:

        【解决方案3】:
        href="javascript:void(0);"
        

        试试这个,这样onclick页面不会跳转也不会刷新

        【讨论】:

          【解决方案4】:

          这可能更像是一种黑客攻击,但你总是可以忽略来自锚标签的点击:

          $('body').on('click', 'a[href="#"]', function(e) { e.preventDefault(); });
          

          【讨论】:

            猜你喜欢
            • 2019-02-20
            • 1970-01-01
            • 2020-05-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-12-07
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多