Javascript 为什么这个脚本从不运行?
我有以下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
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或警告该值吗?了解页面加载时的值有助于确定语句不工作的“原因”。