我尝试(没有太大成功)创建一个包含加载到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 幻灯片附加一个不同的数字,以便每次都生成不同的内容。
我开始认为我以完全错误的方式接近这一点,所以任何有关正确方向的帮助或指示都会受到赞赏!
干杯, 标记
答案 0 :(得分:0)
小贴士就是你只是在打电话给getRandomUrl&#39;曾经,因此为什么它总是相同的形象。你想在每次循环时调用它。
我建议将它从静态数组中删除,并在循环中调用它 - 这有意义吗? :)
HTH
答案 1 :(得分:0)
问题是你只调用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()
中调用它,如果它是一个函数
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);
}