2012-05-22 5 views
2

나는 페이지로드에서 실행되는 다음과 같은 자바 스크립트 문을 가지고 :이 스크립트가 실행되지 않는 이유는 무엇입니까?

변수 u1는 다음 값 중 하나를 채워집니다

:

BBSLoan|Accept|PPI+No|60Months
BBSLoan|Refer|PPI+No|60Months
HSBSLoan|Accept|PPI+No|48Months
HSBSLoan|Refer|PPI+No|48Months

조건부 진술의 조건을 결코 충족시키지 못한다는 정보를 받았습니다. 사실입니까? 위에서 볼 수 있듯이 각 변수를 살펴보면 indexOf이 반환하는 인덱스는 0입니까? 내가 착각하지 않는 한?

EDIT : 변수 'u1'은 위에 나열된 4 개의 문자열 중 하나를 동적으로 채 웁니다. %pu1=!;은 실제로이 값을 채우는 매크로입니다.

<script language="JavaScript" type="text/javascript"> 
    var u1 = '%pu1=!;'; 

    if (u1.indexOf('BBSLoan|Accept') > -1) { 
     var pvnPixel = '<img src="http://www.url1.com"/>'; 
     document.writeln(pvnPixel); 
    } 
    if (u1.indexOf('BBSLoan|Refer') > -1) { 
     var pvnPixel2 = '<img src="https://www.url2.com;"/>'; 
     document.writeln(pvnPixel2); 
    } 
    if (u1.indexOf('HSBSLoan|Accept') > -1) { 
     var pvnPixel3 = '<img src="https://www.url3.com;"/>'; 
     document.writeln(pvnPixel3); 
    } 
</script> 

미리 감사드립니다.

+2

무엇이'var u1 = '% pu1 = !;';'입니까? 당신이 당신의 문자열 중 하나를 대체하면 잘 작동합니다. http://jsfiddle.net/j08691/mDSgY/1/ – j08691

+0

@ j08691 정확히 내 요점. 내 게시물을 위의 4 문자열 중 하나를 사용하여 값을 채우는 매크로라고 편집했습니다. 값이 대체 될 때 작동한다는 것을 알 수 있습니다. 따라서 나는 혼란스러워합니다! – zik

+0

매크로 코드가 작동하지 않습니까? jsFiddle이 보여 주듯이, 게시 한 코드 ('var u1 ='% pu1 = !; ';'청크)가 작동하므로 다른 코드가 충돌하거나 매크로 코드가 실패합니다. – j08691

답변

1

오케이 나는 마침내 indexOf 대신 search을 사용하여 작동하게되었습니다!

5

EDIT : 변수 'u1'은 위에 나열된 4 개의 문자열 중 하나를 동적으로 채 웁니다. % pu1 = !; 실제로이 값을 채울 매크로입니다.

이 답변은 정확하지 않습니다. 나중에 삭제되지만이 답변이 다시 나타나지 않도록하기 위해 남겨 두었습니다. 당신이로 선언 이후

var u1 = '%pu1=!;'; 

U1의 값은 항상 '%pu1=!;'입니다.

+0

실제로 이것은 DoubleClick 플러드 라이트 태그의 일부이며 페이지가로드 될 때 해당 값이 동적으로 채워집니다. '% pu1 = !; 1은 실제로 위에 나열된 값 중 하나를 가져 오는 매크로입니다. 죄송합니다. – zik

+0

매크로가 작동하지 않을 것입니다. 적어도 그것은 내가 먼저 확인할 것입니다. 런타임시에'u1'의 값은 무엇입니까? – FishBasketGordo

+0

@FishBasketGordo 네, 그건 제가 생각한 것입니다.하지만 이걸 테스트해볼 수있는 사람들은 매크로에 문제가 없다고 말하고 있습니다! – zik

0

switch 문을 기본 대소 문자와 함께 사용하거나 최소한 "else"에 기본값을 제공하는 것이 더 합리적입니까?

var u1이 설정되고 클라이언트 (firefox, chrome, IE, safari 모두가 js 코드를 단계별로 실행할 수있는 "개발자 도구"에 내장되어 있음)를 사용하여 단계별로 디버거 명령문을 넣으려고 했습니까? 디버거에서 u1의 값을 확인하십시오.

+0

불행히도이 작업은 페이지로드시 실행되는 DoubleClick 플러드 라이트 태그의 일부이므로 수행 할 수 없습니다. 늘어나는만큼 내가 구문을 볼 수 있지만 올바른 이유는 무엇이든 화재되지 않습니다. – zik

+1

console.log를 사용하거나 값을 경고 할 수 있습니까? 페이지가로드 될 때 값을 알면 명령문이 작동하지 않는 이유를 판별하는 데 도움이됩니다. – Matt

관련 문제