【问题标题】:HTML Link Do Nothing If Already On Page如果 HTML 链接已经在页面上,则什么也不做
【发布时间】:2017-09-15 05:09:12
【问题描述】:

如果我在页面上并单击导航栏中的相应链接,当我当前位于该位置时,如何防止链接重新加载页面(即什么都不做)?我仍然希望链接能够正常工作,但只有在我已经在该页面上时才能执行任何操作。

【问题讨论】:

  • 这是 vanilla JS、Jquery、angularJS、angular 吗?
  • @rjustin 如果可能的话,我宁愿只使用 html
  • 如果它只是 html,请在链接页面的 href="#" 中添加 #。如果没有脚本,您将始终知道您所在的页面。
  • 不可能仅使用 html...您必须使用某种脚本来操作 DOM。

标签: html


【解决方案1】:

我敢肯定,这不是目前“最好”的方法,但可以使用 Javascript/JQuery 来完成,就像我过去在移动 Web 应用程序中需要时所做的那样。

var url = window.location.pathname,
urlRegExp = new RegExp(url.replace(/\/$/,'') + "$");
$('a').each(function(){
    if(urlRegExp.test(this.href.replace(/\/$/,''))) {
        $(this).click(function(event) {
            event.preventDefault();
        });
    }
});

如果 PHP 是一个选项,你可以尝试这样的事情:

\\Run this at top of page
<?php

        function getPageName()
        {
            $filename = $_SERVER["SCRIPT_NAME"];
            $breakfile = Explode('/', $filename);
            $pfile = $breakfile[count($breakfile) - 1];

            return $pfile;
        }

    ?>

\\Modify HTML links to something like this    
    <?php if(getPageName() == 'FILENAME.html'){ ?>

        \\Nav Link Here
        <a href="#" >NAV TITLE</a>


    <?php }else{ ?>


    <a href="FILENAME.html" >NAV TITLE</a>


    <?php } ?>

【讨论】:

  • 可以选择 PHP 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-08
  • 1970-01-01
  • 2021-09-13
  • 2016-10-27
  • 2017-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多