用户点击链接时如何取消导航(<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>