我正在设计一个网页,将文档图像加载到网页中,然后根据从另一个页面传递的变量重定位到特定图像(页面)。代码如下。现在,它看起来不像变量'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未定义。任何想法为什么会这样?
答案 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”的值。