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

用javascript检测父级单击按钮

  •  0
  • notforever  · 技术社区  · 14 年前

    我有一个有两个按钮的页面,一个按钮打开一个具有下一个功能的弹出窗口:

    function MM_openBrWindow(theURL,winName,features) { //v2.0
      my_window=window.open(theURL,winName,features);
    }
    

    我需要从那个窗口(我的窗口)检测到父页面中的第二个按钮被单击并发出警报。

    我该怎么做?

    事先谢谢。

    卡洛斯

    2 回复  |  直到 14 年前
        1
  •  0
  •   Cristian Sanchez    14 年前

    你会这样做 my_window.alert("hey") 在父窗口中第二个按钮的Click事件中。如果要从子窗口访问父窗口(例如,要添加事件),请使用 window.opener 在儿童窗口。

    button2.onclick = function (e) {
       my_window.buttonTwoHasBeenClicked(); // this is defined in the child window.. once executed it means the button has been clicked.
    }
    

    如果要从中定义事件 在内部 子窗口:

    // put this in your child window javascript source
    // also change "button2" to whatever your second button's ID is.
    window.opener.getElementById("button2").onclick = function () {
       alert("button has been clicked on parent window");
    }
    
        2
  •  0
  •   Jerome    14 年前

    您需要使用window.opener在子窗口上放置代码,如下所示:

    function registerWithParent() {
        window.opener.registerCallback(myCallback);
    }
    

    您可以调用Body OnLoad事件。

    <body onload="registerWithParent()">
    

    然后在父窗口上有这样的JS代码:

    var theCallback;
    function registerCallback(fn) {
        theCallback = fn;
    }
    

    那么您在父级上的HTML如下所示:

    <input type="button" onclick="theCallback()" value="The 2nd button">