这是我的JavaScript:
<script type="text/javascript">
(function () {
var lidd = 1;
var ga1 = document.createElement('script'); ga1.type = 'text/javascript';
ga1.async = true;
var res = ["A1LpRTPOUKU%3d", "a8g%2bUPW0%2bck%3d", "ptb0PT3OMIc%3d", "8NzewxsG6Zc%3d"];
for (var i = 0; i < res.length; i++) {
alert('mid=' + res[i]);
ga1.src = ('https:' == document.location.protocol ? 'https://ssl' :
'http://') + 'localhost:59115/ui/trackconversion.aspx?cid=CAR9nmKJG1A%3d&mid=' + res[i] + '&lid=' + lidd;
var s1 = document.getElementsByTagName('script')[0];
s1.parentNode.insertBefore(ga1, s1);
}
})();
</script>
Run Code Online (Sandbox Code Playgroud)
我的问题是for循环在此代码中无法正常工作.这里的长度res是4,因此循环应该执行4次,但在我的代码中它只是部分执行.这意味着,当我执行的代码,我得到的 alert('mid=' + res[i]);4倍,显示所有的四个值,即"A1LpRTPOUKU%3d","a8g%2bUPW0%2bck%3d","ptb0PT3OMIc%3d",和"8NzewxsG6Zc%3d".但在那之后,我trackconversion.aspx只被击中一次而不是被击中4次.
我究竟做错了什么?
您需要将document.createElement部分放在for循环中.你现在正在做的是创建一次脚本标记,将其添加到文档,然后多次更改src.
这不能按预期工作,您必须为每个src创建一个新的脚本元素.例:
(function () {
var lidd = 1;
var res = ["A1LpRTPOUKU%3d", "a8g%2bUPW0%2bck%3d", "ptb0PT3OMIc%3d", "8NzewxsG6Zc%3d"];
for (var i = 0; i < res.length; i++) {
var ga1 = document.createElement('script'); ga1.type = 'text/javascript';
ga1.async = true;
alert('mid=' + res[i]);
ga1.src = ('https:' == document.location.protocol ? 'https://ssl' :
'http://') + 'localhost:59115/ui/trackconversion.aspx?cid=CAR9nmKJG1A%3d&mid=' + res[i] + '&lid=' + lidd;
var s1 = document.getElementsByTagName('script')[0];
s1.parentNode.insertBefore(ga1, s1);
}
})();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |