场景:界面NewsView.aspx嵌套在NewsCenterFrame.aspx中的Iframe中
<iframe src="NewsView.aspx" runat="server" width="749" height="93%" frameborder="0" scrolling="yes"name="frame_right" id="frame_right"></iframe>
如何从外部新闻链接中打开NewsView.aspx界面而且确保它打开后还是嵌套在NewsCenterFrame.aspx,如果链接本身就是在NewsCenterFrame.aspx中那当然万事大吉,直接用target="frame_right"就行了,可如果不是呢,打开的结果则只是NewsView.aspx。
我解决这个问题的思路是在NewsView.aspx和NewsCenterFrame.aspx上面解决,不去改动链接。
NewsView.aspx:
$(document).ready(function () { if (self.frameElement == null) { //判断当前界面是否在iframe中 var thisSLoc = self.location.href; //获取当前界面的url全路径 var tmpUPage = thisSLoc.split("/"); var thisUPage = tmpUPage[tmpUPage.length - 1];//获取当前页面的页面名+所有参数 window.location.href = "NewsCenterFrame.aspx?" + thisUPage;//打开要嵌入的父页面 } else { $("#form1").css("display","inline");//让页面不显示,因为是先执行后台代码的,为了让页面再跳转的过程中NewsView.aspx的内容不显示,先把Form1隐藏掉,如果判断它已经在Iframe中则将它显示出来 } })
NewsCenterFrame.aspx:
$(document).ready(function () { var thisSLoc = self.location.href; var firstindex = thisSLoc.indexOf("?"); var frameurl = thisSLoc.substring(firstindex + 1, thisSLoc.length); $("#frame_right").attr("src", frameurl); })