我正在尝试执行使用JavaScript代码在网页上执行事件(例如onClick事件)时调用的javascript函数。我正在从此类事件获取函数:

var attributval = document.getElementsByTagName("a").getAttribute('onClick');

并且我正在尝试将此对象(实际上是javascript函数)作为函数执行(假设我们在此示例中进行了尝试):
var attributval = document.getElementsByTagName("a").getAttribute('onClick');
attributval() = function(){attributval};
attributval();

但这没用。

最佳答案

DOM属性与JavaScript属性不同(即使它们可以具有相同的名称onclick)。你应该用

var attributval = document.getElementsByTagName("a")[0].onclick;

从JS对象中检索函数(或null)(与getAttribute()相反,后者很可能会返回该属性的toString())。

现在,attributval() =是非法语法,因为attributval()不是l值(您不能将分配给)。
attributval();将起作用,但是没有第二行(这是非法的JavaScript),它将调用原始的A元素onclick处理程序(如果已定义)或引发异常(如果onclick处理程序是null)。

07-24 18:18