页面a.html有一iframe,加载a.html时,iframe加载b.aspx,我要在b中获取a的url,做些处理后转向到c.html,点击c中的连接后,在新窗体中打开d.aspx,d同样要得到a的地址,做些处理后转向。
同时,d还要得到b传给c的一些参数。现在的问题是:
在load事件中,hidden还没初始化,无法接受windows.parent.location.href,如果用Response.Write在load中写出控件,后面又不能使用这个hidden,有什么好方法么?b转向到c时:
Response.Write("<form id='frmVisitRedirect' method='post'>");
Response.Write("<input type='text' id='hitMemberWebUrl' name='hitMemberWebUrl' runat='server'/>");
Response.Write("<script language='javascript'>document.forms[0].hitMemberWebUrl.value=window.parent.location.href;</script>");
Response.Write("</form>");
但是,后面无法引用hitMemberWebUrl,不这样,hitMemberWebUrl还没初始化,无法付值。d转向:
Response.Write("<form id='frmVisitRedirect' method='post'>");
Response.Write("<input type='text' id='hitMemberWebUrl' name='hitMemberWebUrl' runat='server'/>");
Response.Write("<script language='javascript'>document.forms[0].hitMemberWebUrl.value=window.opener.parent.location.href + ';'+ window.opener.request.getParameter('UserID');frmVisitRedirect.submit();</script>");
Response.Write("</form>");
同时,d还要得到b传给c的一些参数。现在的问题是:
在load事件中,hidden还没初始化,无法接受windows.parent.location.href,如果用Response.Write在load中写出控件,后面又不能使用这个hidden,有什么好方法么?b转向到c时:
Response.Write("<form id='frmVisitRedirect' method='post'>");
Response.Write("<input type='text' id='hitMemberWebUrl' name='hitMemberWebUrl' runat='server'/>");
Response.Write("<script language='javascript'>document.forms[0].hitMemberWebUrl.value=window.parent.location.href;</script>");
Response.Write("</form>");
但是,后面无法引用hitMemberWebUrl,不这样,hitMemberWebUrl还没初始化,无法付值。d转向:
Response.Write("<form id='frmVisitRedirect' method='post'>");
Response.Write("<input type='text' id='hitMemberWebUrl' name='hitMemberWebUrl' runat='server'/>");
Response.Write("<script language='javascript'>document.forms[0].hitMemberWebUrl.value=window.opener.parent.location.href + ';'+ window.opener.request.getParameter('UserID');frmVisitRedirect.submit();</script>");
Response.Write("</form>");
a.html
<iframe src='b.aspx?url=...'></iframe>b.aspx
<a herf='c.html?str=<%=...%>' target=_self>...</a>
c.html
<a.herf='d.aspx?str1=...' target=_blank>...</a>
取最上层url
function RedirectUrl()
{
var turl = window.parent.location;
var url="";
var obj = window.parent;
while(turl != url)
{
url = turl;
turl = obj.parent.location;
obj = obj.parent;
}
return obj.location; //obj为最上层的window对象
}
结果还是自己解决了,
用的是传参数的方法,在load中获取本次请求url,加上父页面url的参数,
在下次load,获取这个参数。。
呜呼!!!!