[英]Appending Different Random Number To URL In Javascript Array On Each Loop
我正在尝试(但没有成功)创建一个数组,其中包含要加载到iframe中的幻灯片。 这些框架之一(/Events.php)使用PHP查询WordPress数据库并显示1条随机选择的帖子。 每次循环遍历时 ,此幻灯片都需要显示不同的随机帖子。
我现在的代码是...
<script type="text/javascript">
var frames = Array(
'http://www.example.com/Slide01.php', 5,
'http://www.example.com/Slide02.php', 5,
getRandomUrl(), 5,
'http://www.example.com/Slide04.php', 5
);
var i = 0, len = frames.length;
function getRandomUrl()
{
return "http://www.example.com/Events.php?=" + (new Date().getTime());
}
function ChangeSrc()
{
if (i >= len) { i = 0; } // start over
document.getElementById('myiframe').src = frames[i++];
setTimeout('ChangeSrc()', (frames[i++]*1000));
}
window.onload = ChangeSrc;
</script>
唯一的麻烦是每次显示/Events.php时都会附加相同的数字,因此每次循环都显示相同的帖子。
我需要在每个循环的/Events.php幻灯片上附加一个不同的数字,以便每次生成不同的内容。
我开始认为我正在以完全错误的方式来处理此问题,因此,向正确方向提供的任何帮助或指示都将不胜感激!
干杯,马克。
提示是您只调用一次“ getRandomUrl”,因此为什么它总是相同的图像。 您想在每次循环时都调用它。
我建议将其从静态数组中删除,然后在循环中调用它-这样做有意义吗? :)
高温超导
问题是您仅在定义数组时调用一次getRandomUrl()
,这意味着该值将始终与其仅返回一次相同。
一种解决方案是将函数本身存储在数组中,如下所示:
var frames = Array(
'http://www.example.com/Slide01.php', 5,
'http://www.example.com/Slide02.php', 5,
getRandomUrl, 5,
'http://www.example.com/Slide04.php', 5
);
然后在ChangeSrc()
调用它ChangeSrc()
如果它是一个函数)
function ChangeSrc()
{
if (i >= len) { i = 0; } // start over
var frame = frames[i++],
isFnc = typeof(frame) == "function";
if(isFnc){
frame = frame();
}
document.getElementById('myiframe').src = frame;
setTimeout(function(){
ChangeSrc()
}, frames[i++]*1000);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.