用户点击链接时如何取消导航(<a>元素)?

我试图加载一些使用AJAX的东西,当用户点击一个链接,但我希望链接实际去某个地方,以便该应用程序仍然工作时禁用JavaScript。 有什么办法只是做一些JavaScript和取消导航点击链接时?

最佳做法是什么? 可以这样做,还是我需要replace使用JavaScript或什么?

如果你有这样的HTML:

<a href="no_javascript.html" id="mylink">Do Something</a> 

你会用jQuery做这样的事情:

 $(document).ready(function() { $('#mylink').click(function() { doSomethingCool(); return false; // cancel the event }); }); 

所有你需要做的是用Javascript取消点击事件,以防止发生默认操作。 所以当有人点击启用JavaScript的链接时, doSomethingCool(); 被调用并且click事件被取消(因此return false; )并且阻止浏览器进入指定的页面。 如果他们禁用Javascript, no_javascript.html直接将其设置为no_javascript.html

Google Chrome浏览器对我来说没有任何作用。

这是什么工作,虽然(使用jQuery):

 $(document).ready(function() { $('#mylink').click(function(event) { doSomethingCool(); event.preventDefault(); // cancel the event }); }); 

为什么jQuery?

HTML:

 <a href="no_javascript.html" onclick="return doSmth()">Link</a> 

…和JavaScript代码:

 function doSmth(){ // your code here return false } 

我会做的是:

一个。 对于href属性, javascript:void(); 将被设置

湾 对于onclick事件,将提供一个处理click事件的函数,该函数将返回false。

例如:

 <script type="text/javascript"> function myfunction() { //do something return false; } </script> <a href="javascript:void();" onclick="myfunction()">Link</a> 

至lessIE浏览器,只要把this.event.returnValue = false; 在方法的结尾。

例如:

 function onClickFunction() { someMethod(); this.event.returnValue = false; } 

我有一个复杂的方法,这个伎俩。

 <a href="http://www.google.com" class="ignore-click">Test</a> 

与jQuery:

 <script> $(".ignore-click").click(function(){ return false; }) </script> 

与JavaScript

 <script> for (var i = 0; i < document.getElementsByClassName("ignore-click").length; i++) { document.getElementsByClassName("ignore-click")[i].addEventListener('click', function (event) { event.preventDefault(); return false; }); } </script> 

您可以将类.ignore-click分配给您喜欢的许多元素,并且单击这些元素将被忽略

我使用document.location.replace来导航,但是当我想取消导航时, return false (与document.location.replace在同一个函数中)不会取消导航。

最好的办法应该是这个。

 <a href="javascript:undefined"></a> 

很简单,使用rel =“nofollow”属性

  <a href="signin.php" rel="nofollow">sign in</a>