2017-09-14 87 views
0

如果我在一个页面上并单击导航栏中的相应链接,我如何阻止链接重新加载页面(即什么也不做)当我目前在那位置?我仍然希望链接起作用,但只有当我已经在该页面上时才做任何事情。HTML链接什么也没做,如果已经在页面上

+0

这是香草JS,jQuery的,angularJS,角? – rjustin

+0

@rjustin我宁愿只使用HTML,如果在[HTML链接,一筹莫展的时候,你是他们链接到网页上(所有可能 –

+2

可能的复制https://stackoverflow.com/questions/13119401/html-links - 即,什么都不做的 - 当 - 你 - 是 - 上的页面,它们链接到) –

回答

1

这是迄今为止没有“最好”的方式做到这一点我敢肯定,但我已经在过去需要在移动Web应用程序时完成可以用JavaScript/JQuery的实现。

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 } ?> 
+0

PHP是一个选项吗? –

相关问题