【问题标题】:Why does this script never run?为什么这个脚本永远不会运行?
【发布时间】:2012-05-29 04:37:27
【问题描述】:

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

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

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

我被告知,条件语句中的条件永远不会得到满足 - 这是真的吗?据我所知,在每个变量上,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>

提前致谢!

【问题讨论】:

  • 什么是var u1 = '%pu1=!;';?如果您替换其中一个字符串,它可以正常工作:jsfiddle.net/j08691/mDSgY/1
  • @j08691 正是我的观点。我已经编辑了我的帖子,说这是一个用上面 4 个字符串之一填充值的宏。我可以看到它也可以在替换值时起作用,因此我感到困惑!
  • 您的宏代码不起作用吗?正如 jsFiddle 所证明的那样,您发布的代码(减去var u1 = '%pu1=!;'; 块)有效,因此您有其他代码与此冲突,或者宏代码失败。

标签: javascript if-statement conditional


【解决方案1】:

编辑:澄清一下,变量 'u1' 将使用上面列出的 4 个字符串中的任何一个动态填充。 %pu1=!;实际上是一个将填充此值的宏。

这个答案不正确。它稍后会被删除,但会被保留以防止再次弹出此答案。

var u1 = '%pu1=!;';

u1 的值始终为'%pu1=!;',因为您将其声明为。

【讨论】:

  • 不,实际上这是 DoubleClick Floodlight 代码的一部分,并且该值是在页面加载时动态填充的。 `%pu1=!;1 实际上是一个宏,它包含我上面列出的任何值。抱歉应该更清楚地说明这一点。
  • 我敢打赌宏失败了。至少,这是我首先要检查的。 u1 在运行时查看它的值是多少?
  • @FishBasketGordo 是的,我就是这么想的,但是能够为我测试的人都说宏没有问题!
  • 你可以自己测试一下。使用 Firebug 或 Chrome 开发工具(或您选择的浏览器提供的任何开发工具)并设置断点。
  • 也可能是宏运行正常,只是在这个脚本运行后才运行。
【解决方案2】:

使用带有默认情况的 switch 语句是否更有意义,或者至少提供带有默认值的“else”?

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

【讨论】:

  • 很遗憾,我不能这样做,因为这是在页面加载时执行的 DoubleClick Floodlight 代码的一部分。据我所知,语法是正确的,但由于某种原因这不会触发。
  • 你能 console.log 或 alert 值吗?了解页面加载时的值将帮助您确定语句不起作用的“原因”。
【解决方案3】:

好的,我终于可以使用search 而不是indexOf

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多