我有数组[1, 2, 55, 76, ...]
我生成网址
www.example.com/id/1
www.example.com/id/2
www.example.com/id/55
...
问题:如何显示每个网址几秒钟(3秒)并重定向到下一个网址?
我的想法:使用iframe / jQuery
我对想法/代码/建议持开放态度。
答案 0 :(得分:1)
这是一个JS解决方案。所有URI都由PHP写入数组,然后JS间隔循环遍历它们:
var urls = ['www.example.com/id/1','www.example.com/id/2','www.example.com/id/55'];
var current = 0;
var interval = window.setInterval(function(){
document.getElementById('container').innerHTML = urls[current];
current += 1;
if(!urls[current]) {
window.clearInterval(interval);
}
}, 1000);
在PHP方面,第一行看起来像这样($uris
是一个包含所有URI的数组):
echo "var urls = ['".implode("','", $uris)."']";
答案 1 :(得分:1)
一个非常简单的JS实现就是:
var interval = (function(iframe)
{
var idx = 0,//current idx
urls = <?= json_encode($urlArray); ?>;//array of urls
iframe.src = urls[idx++];//set first url
return setInterval(function()
{//callback function, will be executed every 3 seconds
iframe.src = urls[idx++];
if (idx >= urls.length)
{//we've just reached set last url
idx = 0;//this resets the loop, after 3 seconds, the first url is used again
//alternatively
clearInterval(interval);//end of the loop
}
}, 3000);//3000 miliseconds, or every 3 seconds
}(document.getElementById('yourIframeID')));//pass reference to your iframe here
这一行:
<?= json_encode($urlArray) ?>
当然是一个PHP语句,并且必须运行服务器端,如果你不能从PHP改变JS,你可以通过ajax调用获取url
小提琴遍历网址两次,然后只是终止间隔,iframe.src
语句已被注释掉,因为小提琴使用div,但你得到了基本的想法