我的查询是关于使用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函数。
答案 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]);
}
}
})();