-
如何在父页面中通过js控制一个iframe页面的跳转?
普通类 -
- 支持
- 批判
- 提问
- 解释
- 补充
- 删除
-
-
问题描述
网络上很多关于这个问题的方法,但不是每个方法都有效,有的方法不能适用于所有浏览器,所以每次用到的时候都要逐个去尝试,很浪费时间。
多次尝试摸索下来,我觉得有个方法比较有效果,暂时都没有发现浏览器的兼容性问题。
-
解决方案
下面以知识群评价方案为例:
知识群-某个学习者评价结果页面lc_evluativeBlue_stu_detail_learnerView.jsp,这个页面是通过lc_index.jsp中的name="lccontent"的frame嵌入到lc_index.jsp页面的。
我要更新学习者列表,那么我通过调用updateWaitingForOneUser()这个js方法来实现,而这个js方法是写在lc_index.jsp页面中的,因此我需要通过window.parent.updateWaitingForOneUser()来调用lc_index.jsp中的这个方法。(这里要注意:通过window.parent.之后,我们的窗口其实就回到了lc_index.jsp父页面了,无法再直接调用lc_evluativeBlue_stu_detail_learnerView.jsp中的任何方法或任何元素了。)
更新方法结束之后我需要页面再回到学习者列表页面,如果这时候直接使用window.location.reload()方法,则页面会回到知识群首页,因为此时刷新的是lc_index.jsp;而如果是通过action与struts配置文件跳转到lc_evluativeBlue_stu_detail_learnerView.jsp,则会导致lc_evluativeBlue_stu_detail_learnerView.jsp页面不是包囊在知识群页面中,也就是说这个页面没有头部和尾部了。
解决这个问题的方法:在lc_evluativeBlue_stu_detail_learnerView.jsp页面中写一个js:如,
function updateForOneUser(lcId,ebId,userId,flag){
......
window.location.reload();//重新加载该页面(若要使这个页面跳转到其他页面,可以用 window.location.href=href)
}
在lc_index.jsp页面中写一个js:如
function updateWaitingForOneUser(lcId,ebId,userId,flag){
......
lccontent.window.updateForOneUser(lcId,ebId,userId,flag);
}
说明:lccontent.window. window到达name="lccontent"的frame中,这时可以调用lc_evluativeBlue_student_list.jsp中的js方法。
。
-
-
- 标签:
- 方法
- lc_evluativeblue_stu_detail_learnerview.jsp
- lc_index.jsp
- 调用
- js
- iframe
- 页面
- 知识
-
学习元评论 (0条)
聪明如你,不妨在这 发表你的看法与心得 ~