一:问题描述:子窗口无法直接获得父窗口的参数值
二:解决方案:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>首页</title>
<script language="javascript">
//写了一个Request["Parms"]获取参数小脚本,关键一
var Request = new Array();
function InitData()
{
var s = window.location.href;
var n = s.indexOf("?");
if (n>=0)
s = s.substring(n+1);
var valuelist = s.split("&");
for (var i=0; i < valuelist.length; i++)
{
var pair = valuelist[i].split("=");
if (pair.length > 1)
{
Request[pair[0]] = pair[1];
}
}
}
function getID()
{
InitData();
parent.leftFrame.document.location.href="Navigate_Tree.aspx?HelpID="+Request["HelpID"]+"&CategoryID="+Request["CategoryID"];//该语句为关键语句,大家注意了,关键二
}
</script>
</head>
<frameset rows="85,*" frameborder="yes" border="0" framespacing="0" scrolling="NO">
<frame src="head.htm" name="topFrame" scrolling="yes" frameborder="yes" noresize>
<frameset cols="350,*" border="0" frameborder="yes" framespacing="1" scrolling="NO" οnlοad="getID()">
<frame src='#' name="leftFrame" scrolling="NO">
<frame id="rightFrame" name="rightFrame">
</frameset>
</frameset>
</html>
注:如果遇到页面不断刷新情况,可作如下修改
解决办法:由于使用onload()方法,会引起页面不短刷新,增加一个变量count进行控制即可
//写了一个Request["Parms"]获取参数小脚本,关键一
var Request = new Array();
function InitData()
{
var s = window.location.href;
var n = s.indexOf("?");
if (n>=0)
s = s.substring(n+1);
var valuelist = s.split("&");
for (var i=0; i < valuelist.length; i++)
{
var pair = valuelist[i].split("=");
if (pair.length > 1)
{
Request[pair[0]] = pair[1];
}
}
}
var count=0;//控制页面加载次数
function getID()
{
if(count==0){
InitData();
topFrame.document.location.href="top.jsp?ClInCode="+Request["ClInCode"];//该语句为关键语句,大家注意了,关键二
iframepage.document.location.href="classMain.jsp?ClInCode="+Request["ClInCode"];
count=count+1;
}
}