2010-02-18 4 views
3

개체가 특정 기본 제공 클래스의 인스턴스인지 확인하고 싶습니다. 문제는 내 검사 코드가 개체가 정의 된 창에 없을 수 있으므로 이 String이더라도 x instanceof Stringfalse을 반환합니다. 내가 필요한 것은 x instanceof getWindowOf(x)['String']과 같은 것입니까? 하지만 getWindowOf과 같은 함수를 정의 할 수 있습니까?개체가 정의 된 창을 어떻게 얻을 수 있습니까?

또는 JS 애플리케이션의 모든 창을 가져올 수 있다면 다른 방법으로이를 해결할 수 있습니다. top 및 반복적으로 반복하는 경우 top.frames이 발생하지만 팝업이 누락 될 수 있습니다.

그래서 해결책이 무엇입니까?

예를 들어 String을 사용 중입니다. Element 또는 브라우저에 정의 된 다른 클래스와 같은 클래스를 확인하고 싶습니다.

+0

(가) * 특정 내장 클래스 * 당신이 무엇입니까 확인하고 싶니? – CMS

+0

모든 수업. 모든 클래스. – namin

답변

1

instanceof 연산자를 사용하여 교차 프레임 문제가 발생하지 않도록하고 특정 기본 제공 개체를 확인하려면 Object.prototype.toString 메서드를 사용하는 것이 좋습니다. 내부 메서드가 포함 된 문자열을 반환합니다. [[Class]] 속성 str은 문자열이고 arr 가정은 모두 다른 프레임에서 배열 객체입니다

Object.prototype.toString.call(str); // returns "[object String]" 
Object.prototype.toString.call(arr); // returns "[object Array]" 
// while 
str instanceof String; // is false 
arr instanceof Array; // is false 
// and 
typeof arr; // "object" 

상세 정보 :

+0

하지만 계층 구조를 확인할 수는 없습니다. HTMLDivElement가 Element라고합시다. – namin

관련 문제