我如何,如果执行的onclick禁用HREF?(How can I disable HREF if

2019-07-23 08:17发布

我有两个HREFONCLICK属性设置。 如果点击并启用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链接和执行JavaScript的之前的onclick功能是能够完成重定向页面 ”了,但它只是延缓HREF ,但不能完全禁用它。 我也在寻找一些简单得多。

Answer 1:

您可以使用第一个未编辑的解决方案,如果你把第一回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;
}

例如: https://jsfiddle.net/FXkgV/289/



Answer 2:

    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>


Answer 3:

只需用禁用默认的浏览器行为preventDefault并通过event的HTML中。

<a href=/foo onclick= yes_js_login(event)>Lorem ipsum</a>

yes_js_login = function(e) {
  e.preventDefault();
}


Answer 4:

<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到这些元素你喜欢的许多元素和点击将被忽略



Answer 5:

你可以使用这个简单的代码:

<a href="" onclick="return false;">add new action</a><br>


Answer 6:

所以,很简单,如果你传递一个事件参数如下:

<a href="#" onclick="yes_js_login(event);">link</a>
function yes_js_login(e) {
    e.stopImmediatePropagation();
}


Answer 7:

我解决的地方,我需要一个模板,将交替处理普通URL或JavaScript调用,当JS函数需要调用元素的元素基准的情况。 在JavaScript中,“这个”可以作为仅在一个形式元件,例如,一个按钮的情况下的自参考。 我不想一个按钮,一个常规链接的只是外观。

例子:

<a onclick="http://blahblah" href="http://blahblah" target="_blank">A regular link</a>
<a onclick="javascript:myFunc($(this));return false" href="javascript:myFunc($(this));"  target="_blank">javascript with self reference</a>

该href和的onClick属性的值相同,exept我追加对的onClick“返回false”时,它的JavaScript调用。 在调用的函数没有工作具有“返回false”。



Answer 8:

这可能帮助。 没有必要的JQuery

<a href="../some-relative-link/file" 
onclick="this.href = 'https://docs.google.com/viewer?url='+this.href; this.onclick = '';" 
target="_blank">

此代码执行以下操作:通过相关链接, 谷歌文档查看器

  1. 通过获取锚的完整链接的版本this.href
  2. 打开链接的新窗口。

所以你的情况这可能工作:

<a href="../some-relative-link/file" 
onclick="this.href = 'javascript:'+console.log('something has stopped the link'); " 
target="_blank">


Answer 9:

这为我工作:

<a href="" onclick="return false;">Action</a>


Answer 10:

就我而言,我不得不当用户点击“一”元素的条件。 条件是:

如果其他部分有十余项,那么用户应该不会重定向至其他页面。

如果其他部分只有不到十个项目,那么用户应该被重定向到其他页面。

“一”元件的功能取决于其它组分。 单击事件中的代码是如下:

var elementsOtherSection = document.querySelectorAll("#vehicle-item").length;
if (elementsOtherSection> 10){
     return true;
}else{
     event.preventDefault();
     return false;
}


文章来源: How can I disable HREF if onclick is executed?