我有一个同时设置了HREF
和ONCLICK
属性的锚点。如果单击并启用了Javascript,我希望它只执行ONCLICK
而忽略HREF
。同样,如果Javascript被禁用或不受支持,我希望它遵循HREF
URL并忽略ONCLICK
。下面是我正在做的一个例子,它将同时执行JS和跟随链接(通常执行JS,然后页面更改):
<A HREF="http://example.com/no-js-login" ONCLICK="yes_js_login()">Log in</A>
最好的方法是什么?
我希望得到一个Javascript的答案,但我会接受任何方法,只要它有效,特别是如果这可以用PHP完成。我已经读过"a href link executes and redirects page before javascript onclick function is able to finish“了,但它只会延迟HREF
,但并不能完全禁用它。我也在寻找更简单的东西。
发布于 2014-03-29 05:14:21
如果将return放在第一个onclick
属性中,则可以使用第一个未编辑的解决方案:
<a href="https://example.com/no-js-login" onclick="return yes_js_login();">Log in</a>
yes_js_login = function() {
// Your code here
return false;
}
发布于 2013-03-26 02:41:37
yes_js_login = function() {
// Your code here
return false;
}
如果您返回false,它应该阻止默认操作(转到href)。
编辑:很抱歉,这似乎不起作用,您可以执行以下操作:
<a href="http://example.com/no-js-login" onclick="yes_js_login(); return false;">Link</a>
发布于 2016-05-23 21:56:57
只需使用preventDefault
禁用默认浏览器行为,并在您的HTML中传递event
。
<a href=/foo onclick= yes_js_login(event)>Lorem ipsum</a>
yes_js_login = function(e) {
e.preventDefault();
}
https://stackoverflow.com/questions/15622100
复制相似问题