예전부터 알고 있었던거라 그때 정리해 쓸려했는데..
조금 더 보편화된 패턴이 발견되면 정리할려다 시간이 많이 흘러 이렇게 그냥 정리.. (결국 보편화된 패턴이나 다른 이상 증상은 아직 발견하지 못했습니다. 발견하신분이나 이 문제에 대해 이견이 있으신분은 꼭 리플을 달아주시면 감사드리겠습니다.)
이제라도 증상에 대해 기록해 두어야 될거 같아 정리해 올림-.-
나머지 브라우저에서는 잘 된다 ("function" 반환)
IE가 eval 안에서 function 구문이 동작하지 않는 건 아닌거 같다
조금 더 보편화된 패턴이 발견되면 정리할려다 시간이 많이 흘러 이렇게 그냥 정리.. (결국 보편화된 패턴이나 다른 이상 증상은 아직 발견하지 못했습니다. 발견하신분이나 이 문제에 대해 이견이 있으신분은 꼭 리플을 달아주시면 감사드리겠습니다.)
이제라도 증상에 대해 기록해 두어야 될거 같아 정리해 올림-.-
- 증상 & 분석
IE 에서는 eval 구문에 다음 스트링을 사용하였을 때 반환이 되지 않음.
"(function() {})"
다른 4대 브라우저(FF,Opera,Safari) 에서는 반환이 된다."(function() {})"
typeof eval("(function() {})");
가 IE 에서만 "undefined" 가 나온다나머지 브라우저에서는 잘 된다 ("function" 반환)
IE가 eval 안에서 function 구문이 동작하지 않는 건 아닌거 같다
typeof eval("(function() {return function() {};})();")
은 또 "function" 으로 나오기 때문이다- 대안
- function 구문을 eval 밖으로 빼고 소스 부분만 eval 로 넣는다.
var a = eval("function() { var a=1; alert(++a); return a; }");대신
var a = function() { eval("var a=1; alert(++a); return a; ") };를 사용한다.
- 그냥 eval 대신 Function 을 사용한다.
var a = eval("function() { var a=1; alert(++a); return a; }");대신
var a = new Function("var a=1; alert(++a); return a;");를 사용한다.
'javascript' 카테고리의 다른 글
<button> 엘리멘트의 크로스 브라우징 문제 (1) | 2008.05.26 |
---|---|
JavaScript 에서 style 속성 구하기 (0) | 2008.05.21 |
JavaScript 배열 변수 메소드 정리 (1) | 2008.05.14 |
User preferences color table v 1.0 (0) | 2008.05.14 |
JPT v 1.0 자바스크립트 코드 포퍼먼스 테스터 (JavaScript code Performance Tester) (0) | 2008.05.14 |