0

ドキュメントの画像を Web ページに読み込み、別のページから渡された変数に基づいて特定の画像 (ページ) に移動する Web ページを設計しています。コードは以下です。現在、変数「ページ」が更新されているようには見えません。ページは警告します

<!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 が未定義であることを警告します。それはなぜですか?

4

3 に答える 3

0

URLで渡された変数は、JavaScriptでは自動的に変数になりません。document.location値を自分で解析して抽出する必要があります。

于 2012-11-09T20:47:39.930 に答える
0

正しいalert(p)が機能しているコードは次のとおりです:http: //js.do/rsiqueira/read-param? p = 15

「関数get_url_param」を追加してURLを解析し、「?p=15」の値を読み取りました。

于 2012-11-09T20:59:01.210 に答える
0

pどこにも値が設定されることはないため、もちろん未定義になります。クエリ文字列から値を手動で取得する必要があります。JavaScript は魔法のようにクエリ文字列の値を取得しません。

ここで関数を使用してください: JavaScript でクエリ文字列値を取得するにはどうすればよいですか? 値を取得します。

また、最後のインデックスをチェックしている理由は、for ループの後に go to 呼び出しを設定することです。

于 2012-11-09T20:53:39.067 に答える