[英]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.