JS变量通过URL传递

时间:2012-11-09 20:44:47

标签: javascript url variables

我正在设计一个网页,将文档图像加载到网页中,然后根据从另一个页面传递的变量重定位到特定图像(页面)。代码如下。现在,它看起来不像变量'page'正在更新。该页面将提醒

<!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> 

设置函数TEST()以允许我有一个链接来重新打开p设置为15的页面。页面打开,但是,函数gotoPage()仍然警告p未定义。任何想法为什么会这样?

3 个答案:

答案 0 :(得分:0)

URL中传递的变量不会自动成为JavaScript中的变量。您需要解析document.location并自行提取值。

答案 1 :(得分:0)

p永远不会在任何地方设置值,所以当然它将是未定义的。您需要手动从查询字符串中提取值,JavaScript不会神奇地为您获取查询字符串值。

使用此处的函数:How can I get query string values in JavaScript?获取值。

另外,为什么要检查最后一个索引,在for循环后设置go to call。

答案 2 :(得分:0)

以下是具有正确警报(p)的代码: http://js.do/rsiqueira/read-param?p=15

我添加了一个“函数get_url_param”来解析url并读取“?p = 15”的值。