2014-07-22 207 views
0

我正在尋找的東西,將允許我在根目錄中隨機選擇一個頁面加載每次頁面第一次加載,隨後重新加載/刷新..我有一個index.html和index2.html爲示例在根目錄中彼此略有不同。在頁面加載/刷新時加載隨機頁面的腳本?

我嘗試過谷歌搜索,但找不到任何東西/我嘗試過的所有東西都無法正常工作。

目前,我想要嘗試使用JavaScript是:

var howMany = 3; // number of pages below, count them. 

howMany = howMany-1 
var page = new Array(howMany+1); 

page[0]="index.html"; 
page[1]="index2.html"; 
page[2]="index.html"; 

function rndnumber(){ 
    var randscript = -1; 
    while (randscript < 0 || randscript > howMany || isNaN(randscript)){ 
     randscript = parseInt(Math.random()*(howMany+1)); 
    } 
    return randscript; 
} 
quo = rndnumber(); 
quox = page[quo]; 
location.href=(quox); 

如果我在本地測試它,好像它的工作原理,但它卡住由於某些原因無限,並自動重新加載/刷新循環。當我上傳到服務器沒有重新加載循環,但隨機化不起作用,它只是加載index.html我有一個測試頁在這裏:http://www.samnorris.co.nz/test2/它既有index.html也有index2。在根目錄中的HTML

任何人都可以提供任何線索爲什麼這可能無法正常工作和/或更好的解決方案?

謝謝!

+0

(也,我意識到該數組只應該指定2個而不是3個頁面,但它似乎沒有任何區別。) – FuManchuNZ

+0

如果您每次加載/刷新頁面時都會重定向用戶,他們將陷入重定向循環! –

回答

1

JavaScript在頁面加載時在客戶端上執行。所以每次加載頁面時,它都會隨機選擇一個頁面並重定向到該頁面。那個頁面有一些嵌入的JavaScript代碼,當執行時,選擇一個隨機頁面並加載它,...

更好的解決方案是使用服務器端語言處理服務器上的頁面服務。例如PHP。該代碼將是這樣的:

的index.php

<?php 
$randNumber = mt_rand(1,3); 
if ($randNumber == 1) 
{ 
    include 'index_1.html'; 
} 
else 
{ 
    include 'index_2.html'; 
} 
+0

你能給我多一點想法如何設置? (對不起,不太熟悉PHP)...如果我上傳index.php到根路徑它似乎不想加載? (訪問預覽?有沒有在我的htaccess文件中設置的東西造成這種情況?)直接導航到index.php它似乎只是加載(http://www.samnorris.co.nz/test2 /index.php)或給出錯誤 – FuManchuNZ

+0

由於您試圖包含的index.html不存在,它會給您帶來錯誤。而且這種情況下的URL保持不變。服務器腳本只是向用戶發送另一個(隨機)內容。 – Razem

+0

對不起,我只是修正了....現在它似乎是嵌入整個第二頁到第一個雖然o_O – FuManchuNZ

1

您必須以某種方式告訴腳本它已被重定向。這可能可以通過使用位置的散列來實現:

if (location.hash === "#redirected") { 
    location.hash = ""; 
} 
else { 
    quo = rndnumber(); 
    quox = page[quo]; 
    location.href=(quox) + "#redirected"; 
} 
+0

我會把它放在其他代碼下面嗎?啊......看看它現在在做什麼,哈哈:http://www.samnorris.co.nz/test2/這次得到了服務器上的無限重載/重定向循環... – FuManchuNZ

+0

不只是在下面。把它,而不是最後3行。 – Razem

+0

好吧,很酷,這是有效的,但現在我在我的URL中有一個有點難看的#redirected標記.....不要以爲有任何方法來隱藏它,所以URL不會顯示(或哪個頁面有加載?) – FuManchuNZ

0

創建在同一目錄下面的內容你"index*.html"文件單獨的HTML文件:

<script type="text/javascript"> 
    var pages = [ 
     "index.html", 
     "index2.html", 
     "index3.html" 
    ]; 

    function randomPage() { 
     return pages[Math.round(Math.random() * (pages.length - 1))]; 
    } 

    location.href= randomPage(); 
</script> 
+0

頁面刷新時這不起作用。 – Razem