代码之家  ›  专栏  ›  技术社区  ›  Brandon

从子链接,维护父引用

  •  0
  • Brandon  · 技术社区  · 8 年前

    function Open_Ref() {
    X = (screen.width - 900) / 2;
    Y = (screen.height - 700) / 2;
    settings = 'resizable=yes,scrollbars=yes,height=700,width=900,top=' + Y + ',left=' + X;
    theURL = '../dir/foo.htm#' + parent.MAIN.frame_id;
    Ref_Window = window.open(theURL, 'Ref', settings);
    Ref_Window.focus();
    Ref_Window.moveTo(X, Y);
    }
    
    function Refresh_Ref() {
    theURL = '../dir/foo.htm#' + parent.MAIN.frame_id;
    if (Ref_Window != null) {
    Ref_Window.updateRef(parent.MAIN.frame_id);
    }
    

    这将打开参考窗口,在该参考中,它包含用于从父帧更新帧参考的代码;

    function updateRef(frame){
            window.location.hash=frame;
    }
    

    setTimeout("Refresh_Ref()",1000);
    

    这一切都是正确的,作为父对象的框架。主菜单被导航,子菜单更新到适当的框架。我的问题是,我有多个“个性化”引用,从引用窗口链接(基本上是原始引用子对象的副本),我们称它们为foo1。htm,foo2。htm等,当访问它们时,它们将失去更新到父框架的能力,即使您导航回foo。htm文件。

    我意识到原来的Open\u Ref()函数只调用这一个文件,然而,我尝试在中添加多个函数,但它似乎不起作用。

    任何想法,都可以使用布尔语句来检查哪个foo。htm文件在运行函数之前是否打开?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Brandon    8 年前

    我们遇到的问题是,body标签中有一个onunload方法,当你离开孩子时,它会取消对孩子的关注。一旦我们删除了onunload标记,它就保持了来自父对象的焦点,因此它能够继续运行Refresh\u Ref()函数。它确实抛出了一个错误,因为该函数也在查找空窗口,所以当您关闭引用窗口时,脚本将出错。为了缓解这种情况,我们创建了一个catch来捕捉错误并使窗口为null。

    别担心!谢谢你的帮助!!