나는 eval을 사용하지 않고 Crockford가 다음과 같은 점이 무엇인지 잘 모르겠습니다. 다음 문제를 해결하기위한 더 나은 접근법이 있습니까 아니면 무시할 필요가있는 것입니다 (개선의 여지가있는 경우 솔루션을 완벽하게 개선하는 것을 선호합니다).함수 (..) throws 'eval is evil'메시지
일부 픽셀 추적 기능을 사용하고 있는데이 경우 클라이언트는 JS 기능을 사이트 외부로 리디렉션되는 HTML 이미지 태그의 onclick
속성에 바인딩했습니다. 이미지의 이벤트 리스너를 여러 번 사용하여 경쟁 조건을 뛰어 넘지 않고 안정적으로 클릭 수를 추적해야합니다. 전략은 런타임에 이벤트를 무시하고 내 자신의 기능에서 이벤트를 복사 및 실행하는 것입니다. 이것은 내가 제어 할 수없고 변경할 수없는 사이트에 적용된다는 점에 유의하십시오. 그래서 해결책은 같은 같습니다
...
func = Function(img.attr('onclick'));
...
img.attr('onclick', '');
... //some custom tracking code
func.call(this);
을하고 JSLint 검사기는 eval is evil
오류가 발생합니다.
href
개의 여러 이벤트에 대한 경쟁 조건을 피할 수있는 더 좋은 방법이 있습니까? 당신이이 문자열로 HTML의 속성으로 지정되었을 때 콜백 함수 요청 후와 Function
을 구성하고 있기 때문에 당신은 암시 적으로 eval
을 사용하고
에 공급 될 때 원래의 핸들러가 동일한 매개 변수와 함께 호출되는 것을 보장
@ gillesc 기술적으로는 _attribute_가 아닌 _property_입니다. – Alnitak
실제로 이벤트 핸들러를 사용했지만 실제로는 올바르게 처리 할 수 없으므로 속성이 아님을 지적 해 주셔서 감사합니다. – GillesC