• 如何在父页面中通过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条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部