页面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>");

解决方案 »

  1.   

    很简单吧,你把参数传递进去就行了。
    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>
      

  2.   

    javascript:
    取最上层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对象
    }
      

  3.   

    这样吧。我觉得你用javascript可以解决的。淡然用.net也是可以解决饿。不过我现在好久不用.net了。给你说说大概的思路把。先可以在 iframe 的onload实践中取a页面的地址(也就是它父窗口url属性),取到之后提交给后台做你想要做的处理。如果想记住A页面的地址。你就用SESSION记录。或者说是通过参数传递来解决~!这样的问题我遇到过。不过我也是这样解决的。
      

  4.   

    为了这个问题,问了几次。
    结果还是自己解决了,
    用的是传参数的方法,在load中获取本次请求url,加上父页面url的参数,
    在下次load,获取这个参数。。
    呜呼!!!!