¿Por qué este script nunca se ejecuta?
Frecuentes
Visto 155 veces
2
Tengo la siguiente declaración de JavaScript, que se ejecuta en Page Load:
La variable u1
se rellena con uno de los siguientes valores:
BBSLoan|Accept|PPI+No|60Months
BBSLoan|Refer|PPI+No|60Months
HSBSLoan|Accept|PPI+No|48Months
HSBSLoan|Refer|PPI+No|48Months
Me han informado que nunca se cumplirán las condiciones de las sentencias condicionales. ¿Es esto cierto? Por lo que puedo ver, yendo a cada una de las variables, el índice que será devuelto por indexOf
is 0
? A menos que me equivoque?
EDITAR: solo para aclarar, la variable 'u1' se completará dinámicamente con cualquiera de las 4 cadenas enumeradas anteriormente. los %pu1=!;
es en realidad una macro que llenará este valor.
<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>
Gracias de antemano!
3 Respuestas
5
EDITAR: solo para aclarar, la variable 'u1' se completará dinámicamente con cualquiera de las 4 cadenas enumeradas anteriormente. El %pu1=!; es en realidad una macro que llenará este valor.
Esta respuesta no es correcta. Se eliminará más tarde, pero se dejará para evitar que esta respuesta vuelva a aparecer.
var u1 = '%pu1=!;';
El valor de u1 es siempre '%pu1=!;'
, ya que lo declaras así.
contestado el 22 de mayo de 12 a las 17:05
No, en realidad esto es parte de una etiqueta de Floodlight de DoubleClick y ese valor se completa dinámicamente cuando se carga la página. `%pu1=!;1 es en realidad una macro que extrae cualquiera de los valores que enumeré anteriormente. Lo siento, debería haber dejado esto más claro. - zik
Apuesto a que la macro está fallando. Al menos, eso es lo que yo comprobaría primero. ¿Cuál es el valor de u1
si lo miras en tiempo de ejecución? - PescadoCestaGordo
@FishBasketGordo sí, eso es lo que pensé, pero las personas que podrían probar esto por mí dicen que no hay nada malo con la macro. - zik
Puedes probarlo tú mismo. Use Firebug o Chrome Developer Tools (o cualquier herramienta de desarrollo que proporcione su navegador de elección) y establezca un punto de interrupción. - PescadoCestaGordo
También puede ser que la macro esté funcionando bien, pero solo se está ejecutando después de que se ejecuta este script. - PescadoCestaGordo
1
Ok, finalmente conseguí que esto funcionara usando search
en lugar de indexOf
!
contestado el 23 de mayo de 12 a las 13:05
0
¿Tendría más sentido usar una declaración de cambio con un caso predeterminado o, como mínimo, proporcionar un "else" con un valor predeterminado?
¿Ha intentado poner una declaración de depuración después de configurar var u1, y paso a paso usando el depurador del cliente (Firefox, Chrome, IE, Safari, todos tienen "herramientas de desarrollador" integradas con la capacidad de recorrer el código js) para ver qué? el valor de u1 es?
contestado el 22 de mayo de 12 a las 18:05
Lamentablemente, no puedo hacer esto porque es parte de una etiqueta de DoubleClick Floodlight que se ejecuta al cargar la página. Por lo que puedo ver, la sintaxis es correcta, pero esto no se activa por algún motivo. - zik
¿Puedes console.log o alertar el valor? Conocer el valor cuando se carga la página lo ayudaría a determinar "por qué" las declaraciones no funcionan. - Matt
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript if-statement conditional or haz tu propia pregunta.
Qué es
var u1 = '%pu1=!;';
? Si sustituye una de sus cadenas, funciona bien: jsfiddle.net/j08691/mDSgY/1 - j08691@ j08691 Exactamente mi punto. Edité mi publicación para decir que esta es una macro que completa el valor con una de las 4 cadenas anteriores. Puedo ver que funciona cuando los valores también se sustituyen, ¡por eso estoy confundido! - zik
¿Tu código de macro no funciona? Como lo demuestra jsFiddle, el código que ha publicado (menos el
var u1 = '%pu1=!;';
chunk) funciona, por lo que tiene otro código en conflicto con este, o el código de la macro está fallando. - j08691