我正在尝试执行使用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
)。