2012-01-19 5 views
1

에 true를 돌려 나는 다음과 같은 스크립트가 :같이 IndexOf 항상 document.location에

if (window.location.href.indexOf('env=P')) {  
    env = 'P'; 
    console.log("P"); 
} else { 
    env = 'A'; 
    console.log("A"); 
} 

ENV 상관없이 URL이 무엇인지 항상 P와 동일합니다. 나는 uri를 위해 indexOf를 사용했음을 확신한다.하지만 여기서 문제가 확실하지 않다.

답변

3

indexOf가 0을 반환하지 않으므로 true로 평가됩니다.

if (window.location.href.indexOf ('env = P')> -1)

으로 변경하십시오.
2

indexOf은 문자열에 하위 문자열이 없으면 -1을, -1true 값을 반환합니다.

이것은 부분 문자열의 인덱스를 반환하기 때문에 (0을 반환하는 'foo'.indexOf('f')이므로).

귀하의 확인이 있어야한다 :

if (location.href.indexOf('env=P') >= 0) { 
0

일치가없는 경우 Truthy 값, 당신은 명시 할 필요가 이잖아 -1 indexOf 반환;

if (window.location.href.indexOf('env=P') === -1) { 
    ///no match