2012-11-09 194 views
0

我正在設計一個網頁,將文檔的圖像加載到網頁中,然後將基於從另一頁傳遞的變量重定位到特定圖像(頁面)。代碼如下。現在,它看起來不像正在更新變量「頁面」。該頁面將提醒JS變量通過URL傳遞

<!DOCTYPE html> 

<html> 
    <head> 
    <title>TEST</title> 



    <!-- Javascripts --> 
    <script type="text/javascript"> 
    var pageCount = 40; /*Total number of pages */ 
    var p; /*Variable passed to go to a specific page*/ 

    function pageLoad(){ /*Loads in the pages as images */ 

     for(i = 1; i<= pageCount; i++){ 
      if(i < 10){ 
       i = "0"+i; 
      } 

      document.body.innerHTML += "<div class='page'><a id='page" + i +"'><img src='pages/PI_Page_"+ i +".png' /></a></div>"; 
      if(i == pageCount){ 
       gotoPage(p); 
      } 
     }  
    } 

    function gotoPage(pageNum){ /* Moves webpage to target page of the PI */ 
     window.location = ("#page" + pageNum); 
     alert(p); 

    } 


    function Test(){  
     window.open("./PI.html?p=15","new_pop"); 
    } 

    </script>  
    </head> 




    <body onload="pageLoad()"> 

    <div class="ExtBtn" onClick="Test()"> 
    <img alt="Exit" src="design/exit_btn-02.png" /> 
    </div> 



    </body> 

</html> 

功能測試()成立,讓我有一個鏈接,重新打開與對集頁面15.頁面打開,但是,功能GotoPage記述()仍警告p未定義。任何想法,爲什麼這是?

+0

我在代碼中看不到任何名爲'page'的變量。 – Mathletics

+0

這裏是一個有用的URL參數解析函數http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values?page=1&tab=votes#tab-top – matz3

回答

0

在URL中傳遞的變量不會自動變成JavaScript中的變量。您需要解析document.location並自行提取值。

+0

'文檔。 URL'是符合標準的屬性,也是向後兼容的。 – PointedEars

+0

謝謝,這就是我想知道的,而不是在我去的網頁上找到的。 – saq

0

p永遠不會在任何地方設置一個值,所以當然它將是未定義的。您需要手動從查詢字符串中提取值,JavaScript不會爲您自動獲取查詢字符串值。

使用此處的功能:How can I get query string values in JavaScript?以獲取該值。

此外,爲什麼你要檢查最後一個索引,在for循環之後設置去調用。

+0

goTo是在循環中,因爲之前,當我的代碼出錯時,它不能正確讀取外部(只是將其改回)。無論如何,感謝大家,這是一個巨大的幫助。 – saq