簡體   English   中英

在每個循環中將不同的隨機數附加到Javascript數組中的URL

[英]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);
}

http://jsfiddle.net/redgg6pq/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM