2011-04-11 5 views
0

html 태그 ID의 배열을 통해 반복되는 스크립트가 있는데 배열의 일부 요소는 비어 있습니다. 나는 IEIE에서 파이어 폭스가 아닌 널 포인터 expection은 왜 발생합니까?

에 널 포인터 여부를 오브젝트 오류를 ​​파이어 폭스에서 잘 작동하지만 발생 if 문을
if((storedVars.id) != ("")){selenium.browserbot.getCurrentWindow().document.getElementById(storedVars.id).type;} 

가 왜 IE에서가 아니라 파이어 폭스에 실패 않으며, IE에 대한 적절한 구문은 무엇인가?

+0

어떤 버전 (들) (인해 !== 연산자 비교하는 두 개의 문자열로보다 효율적인 비트) IE의? 실패한 'id'는 무엇입니까? –

+1

어떤 요소가 null인지는 IE입니다. – Imran

답변

0

는 :

if(storedVars.id && storedVars.id !== "") 

1

storedVars.id == null 인 경우 브라우저에 관계없이이 코드는 작동하지 않습니다. storedVars.id!가 null 인 경우 storedVars.id! = ("")가 true가됩니다. 아마 그것은 IE (또는 IE에서 실행하는 테스트)에서 null이고 Firefox에서는 null이 아닙니다. 그 근본 원인은 코드의 다른 부분 일 수 있습니다. null이 아니며 다른 객체가 모두 존재하고 null이 아닌 것으로 가정하고 (selenium.browserbot.getCurrentWindow()) 브라우저 간 호환 객체를 반환하면이 코드가 실행됩니다.

그러나 내가 알 수있는 한이 코드는 아무 것도하지 않습니다. 메서드 호출이나 할당이 없습니다. 주제를 조금 벗어나지 만 모든 브라우저 간 통증을 완화하기 위해 사람들은 대개 jQuery 또는 YUI와 같은 프레임 워크를 사용합니다.

가 정의되지 않았거나 null 오히려 빈 문자열보다 그래서 대신이 시도 될 수 IE에서
관련 문제