0

我的查询是关于使用 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 函数的一部分,并用那部分创建一个新的 onclick 函数。

4

1 回答 1

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]);
        }
    }
})();
于 2013-10-31T23:39:56.337 回答