使用Javascript更改现有的onClick函数

时间:2013-10-31 23:24:59

标签: javascript onclick

我的查询是关于使用Javascript来更改页面上已存在的onclick函数的值。

有一个按钮。此按钮具有以下onclick功能:

onclick="if (confirm('Yahdy Yahdy yah?')) { someFunction(); }; return false;"

我想使用Javascript更改onclick函数,如下所示,或者提取someFunction();并直接运行,无需通过确认。据我了解,你不能通过脚本确认确认,所以我唯一的选择是运行someFunction();直。我的问题是,如何直接访问someFunction(),因为someFunction()每次页面加载时都包含随机生成的值。

onclick="someFunction();"

这基本上就是我想要的,所以我可以直接调用onclick()。我很高兴使用vanilla或jQuery来解决这个问题。

TLDR:我想提取旧onclick函数的PART并使用JUST那个部分创建一个新的onclick函数。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

var code = obj.onclick.toString();

这将为您提供分配给该点击处理程序的javascript代码,您可以在其中搜索它,找到您要查找的内容并将点击处理程序重新分配给其他内容。


我不知道这是否是最好的方法,但这里有一些对我有用的东西:

function nullConfirm() { return true;};

(function() {
    var obj = document.getElementById("test");
    var code = obj.onclick.toString();
    code = code.replace("confirm(", "nullConfirm(");
    var matches = code.match(/\{(.*)\}/);
    if (matches) {
        obj.onclick = function() {
            eval(matches[1]);
        }
    }
})();