2012-05-22 5 views
2

я получил следующее заявление JavaScript, который выполняется при загрузке страницы:Почему этот скрипт никогда не запускается?

Переменная 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 Точно моя точка. Я отредактировал свое сообщение, чтобы сказать, что это макрос, который заполняет значение одной из четырех строк выше. Я вижу, что он работает, когда значения тоже подставляются, поэтому почему я смущен! – zik

+0

Не работает ли ваш макрокоманд? Как показал jsFiddle, код, который вы опубликовали (минус 'var u1 = '% pu1 = !;';' chunk), работает, так что либо у вас есть другой код, конфликтующий с этим, либо с макрокодом. – j08691

ответ

1

Ok Я, наконец, получил это, чтобы использовать, используя search вместо indexOf!

5

EDIT: Для уточнения переменной «u1» будет динамически заполняться любая из 4 строк, перечисленных выше. % Pu1 = !; на самом деле является макросом, который будет заполнять это значение.

Этот ответ неправильный. Он будет удален позже, но его оставляют, чтобы этот ответ снова не появлялся.

var u1 = '%pu1=!;'; 

Значение u1 всегда '%pu1=!;', так как вы объявляете это как то.

+0

На самом деле это не часть тега Floodlight DoubleClick, и это значение динамически заполняется при загрузке страницы. '% Pu1 = !; 1 - фактически макрос, который тянет любое из значений, перечисленных выше. Извините, должно было сделать это яснее. – zik

+0

Я бы поспорил, что макрос не работает. По крайней мере, это то, что я хотел бы проверить в первую очередь. Каково значение 'u1', если вы посмотрите на него во время выполнения? – FishBasketGordo

+0

@FishBasketGordo да, это то, что я думал, но люди, которые могли бы проверить это для меня, говорят, что в макросе нет ничего плохого! – zik

0

Было бы разумнее использовать оператор switch с дефолтным случаем или, как минимум, предоставить «else» по умолчанию?

Вы пытались поместить инструкцию отладчика после установки var u1 и выполнить шаг за шагом с помощью клиента (firefox, chrome, IE, safari все встроены в «инструменты разработчика» с возможностью перехода через js-код) отладчик, чтобы узнать, что такое значение u1?

+0

К сожалению, я не могу этого сделать, потому что это часть тега Floodlight DoubleClick, который выполняется при загрузке страницы. Насколько я понимаю, синтаксис верен, но по какой-то причине это не срабатывает. – zik

+1

можете ли вы console.log или предупредить значение? Знание значения при загрузке страницы поможет вам определить «почему», инструкции не работают. – Matt

Смежные вопросы