我不使用eval,我不确定Crockford在以下方面遇到了什么问题。有没有更好的方法来解决以下问题,或者这只是我需要忽略的一点(如果有需要改进的地方,我更喜欢完善/改进我的解决方案)。函数(..)抛出'eval是邪恶的'消息
我正在使用一些像素跟踪的东西,在这种情况下,客户端已绑定JS功能到onclick
属性的HTML图像标记重定向站点。我需要可靠地跟踪咔嗒声,而不会遇到图像上具有多个事件侦听器的竞态条件。策略是在运行时重写事件,并在我自己的函数中复制和运行它。请注意,这是应用于我无法控制且无法更改的网站。所以解决方案看起来像这样:
...
func = Function(img.attr('onclick'));
...
img.attr('onclick', '');
... //some custom tracking code
func.call(this);
和JSLint检查器抛出eval is evil
错误。
有没有更好的方法来避免href
动作的多个事件的竞赛条件?
好像你里面只需要触发onclick事件处理程序,如果它包含JavaScript代码。 img.onclick();或img.onclick.call(); – GillesC 2012-04-27 17:15:15
@gillesc技术上说,这是一个_property_而不是_attribute_。 – Alnitak 2012-04-27 17:18:58
事实上,但感谢指出它不是一个属性,所以我可以正确纠正它。 – GillesC 2012-04-27 17:20:42