Javascript 为什么这个脚本从不运行?

Javascript 为什么这个脚本从不运行?,javascript,if-statement,conditional,Javascript,If Statement,Conditional,我有以下JavaScript语句,在页面加载时执行: 变量u1由以下值之一填充: BBSLoan |接受| PPI+否| 60个月 BBSLoan |参考| PPI+否| 60个月 HSBSLoan |接受| PPI+否| 48个月 HSBSLoan |参考| PPI+否| 48个月 我被告知,条件陈述中的条件永远不会得到满足——这是真的吗?从我所看到的,在每个变量上,indexOf返回的索引是0?除非我弄错了 编辑:只是澄清一下,变量“u1”将用上面列出的4个字符串中的任何一个动态填充。%pu

我有以下JavaScript语句,在页面加载时执行:

变量
u1
由以下值之一填充:

BBSLoan |接受| PPI+否| 60个月

BBSLoan |参考| PPI+否| 60个月

HSBSLoan |接受| PPI+否| 48个月

HSBSLoan |参考| PPI+否| 48个月

我被告知,条件陈述中的条件永远不会得到满足——这是真的吗?从我所看到的,在每个变量上,
indexOf
返回的索引是
0
?除非我弄错了


编辑:只是澄清一下,变量“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>

变量u1=“%pu1=!;”;
if(u1.indexOf('BBSLoan | Accept')>-1){
var pvnpix=“”;
书面文件(pvnPixel);
}
如果(u1.indexOf('BBSLoan | reference')>-1){
变量pvnPixel2='';
书面文件(pvnPixel2);
}
如果(u1.索引of('HSBSLoan | Accept')>-1){
var pvnPixel3='';
书面文件(pvnPixel3);
}

提前谢谢

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>
这个答案不正确。稍后会将其删除,但会保留以防止再次弹出此答案。

var u1 = '%pu1=!;';

u1的值总是
“%pu1=!;”,因为您这样声明。

将switch语句与默认大小写一起使用,或者至少提供一个带有默认大小写的“else”语句,这更有意义吗


您是否尝试过在设置var u1后插入调试器语句,并使用客户端(firefox、chrome、IE、safari都内置了“开发人员工具”,可以逐步执行js代码)调试器查看u1的值是多少?

好的,我最终使用
搜索
而不是
索引
实现了这一点

什么是
var u1='%pu1=!;'?如果你替换一个字符串,它就可以正常工作:@j08691正是我的观点。我编辑了我的帖子,说这是一个宏,用上面4个字符串中的一个填充值。我可以看出,当值被替换时,它也会起作用,因此我感到困惑!你的宏代码不工作吗?正如JSFIDLE所示,您发布的代码(减去
var u1='%pu1=!;';
chunk)是有效的,因此您可能有其他代码与此冲突,或者宏代码失败。不,实际上这是双击泛光灯标记的一部分,该值在页面加载时动态填充。“%pu1=!”!;1实际上是一个宏,它拉入我上面列出的任何值。对不起,我应该说得更清楚。我敢打赌宏正在失败。至少,这是我首先要检查的。如果您在运行时查看
u1
,它的值是多少?@FishBasketGordo是的,这是我的想法,但是能够为我测试它的人说宏没有问题!你可以自己测试。使用Firebug或Chrome Developer工具(或您选择的浏览器提供的任何开发工具)并设置断点。也可能是宏工作正常,但它只是在该脚本运行后运行。不幸的是,我不能这样做,因为这是在页面加载时执行的双击泛光灯标记的一部分。据我所知,语法是正确的,但由于某些原因,这不会触发。您可以console.log或警告该值吗?了解页面加载时的值有助于确定语句不工作的“原因”。