2016-10-21 17 views
0

我試圖通過5個鏈接循環,並希望在每個頁面加載時循環瀏覽它們(即第一個訪問者頁面加載顯示鏈接1,第二個訪問者頁面加載顯示鏈接2等等,然後回到鏈接1後,鏈接5顯示)如何循環鏈接(按順序)每頁加載

我發現下面的代碼,通過隨機循環鏈接,但我試圖讓他們按順序加載。這可能嗎?在此先感謝您的幫助。

<li id="RotateLink"></li> 

<script language="javascript"> 
var links = new Array("link1", "link2", "link3", "link4", "link5"); 
var randomnumber=Math.floor(Math.random()*5) 
document.getElementById("RotateLink").innerHTML = links[randomnumber]; 
</script> 

(此外,在不斷變化的「鏈接1」到實際的鏈接的一些技巧將是有益的太)

回答

0

因爲你失去了在頁面加載的JS情況下,你可以利用瀏覽器的內置localStorage的api (https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage)。

<li id="RotateLink"></li> 

<script language="javascript"> 
    var links = new Array("link1", "link2", "link3", "link4", "link5"); 
    var numberFromStorage = localStorage.getItem("cycle-link-number") || "0"; // zero if getItem returns null 
    var number = parseInt(numberFromStorage); //cast to number since storage saves strings 
    number = number >= links.length ? 0 : number; // reset if reached max 
    localStorage.setItem("cycle-link-number", number + 1); //set item for next iteration 
    document.getElementById("RotateLink").innerHTML = links[number]; 
</script> 

要創建的鏈接,你可以做這樣的事情:

// instead of 
// document.getElementById("RotateLink").innerHTML = links[number]; 
// do 
var link = document.createElement("a"); // creates anchor element 
link.href = 'someUrl'; // sets the url, e.g link.href = 'http://www.google.de'; 
link.innerHTML = 'linktext'; // set the link text 
document.getElementById("RotateLink").appendChild(link); // appends the link to the element with the id "RotateLink" 
+0

感謝Stefan,我只是試過了代碼,它似乎沒有工作。我不確定是否需要根據您發送的本地存儲鏈接添加其他內容。 – Jason

+0

應該工作。你能分享你的實施或任何錯誤? –

+0

我剛剛意識到我有一個錯字。獲得鏈接[randomnumber]。更新它。它現在應該工作 –

0

,因爲你需要知道,頁面重新加載後,以前加載的鏈接,你需要在一些地方保存這些信息,以便您可以在下次重新加載時使用它。我們有瀏覽器本地存儲來做到這一點。您可以存儲先前加載的鏈接的索引,並根據該鏈接增加鏈接。有關HTML5 Web存儲的更多詳細信息here

<li id="RotateLink"></li> 

<script language="javascript"> 

var links = new Array("link1", "link2", "link3", "link4", "link5"); 

var currentIndex=localStorage.currentIndex; 
if(currentIndex){ 
    if(currentIndex < links.length-1) 
    currentIndex = parseInt(currentIndex)+1; 
    else 
    currentIndex = 0; 
} else { 
    currentIndex = 0; 
    localStorage.setItem('currentIndex', currentIndex); 
} 
localStorage.currentIndex = currentIndex; 
document.getElementById("RotateLink").innerHTML = links[currentIndex]; 

</script> 
+0

感謝suzo,我只是嘗試了代碼,它似乎沒有工作。我不確定是否需要根據您發送的本地存儲鏈接添加其他內容。任何幫助/方向將不勝感激。 – Jason

+0

它應該工作。你能分享你所做的事嗎? – superUser

+0

我爲你做了一個小提琴。請檢查並讓我知道,如果這是你所期待的:https://jsfiddle.net/suzo/yzycajpu/ – superUser