2010-08-25 120 views
0

我有两个按钮的页面,一个按钮将打开下一个功能一个弹出窗口:检测父点击按钮使用javascript

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

,我需要从窗口(MY-WINDOW14),以检测当第二个按钮在父页面中单击并引发警报。

我该怎么做?

在此先感谢。

卡洛斯

回答

0

你会在父窗口中的第二个按钮的Click事件做my_window.alert("hey")。如果要从子窗口访问父窗口(例如添加事件),请在子窗口中使用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"); 
} 
+0

您好,感谢,但我需要的是,子窗口检测到父按钮被点击后,警报只是看它是否工作。 谢谢 – notforever 2010-08-25 21:43:11

+0

@notforever:是的,我知道。你需要一个点击处理器,不管它在哪里定义。在那个点击处理中,你可以在你的'my_window'引用中调用一个函数让其他窗口“知道”该按钮已经被点击。 – 2010-08-25 21:49:14

+0

对不起,我是一个新手,你可以给我一个例子,我不知道如何从我的窗口引用父按钮。谢谢 – notforever 2010-08-25 21:54:44

0

你需要使用window.opener把代码中的子窗口中,像这样的:

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

你可以打电话比身体onload事件。

<body onload="registerWithParent()"> 

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

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

那么你的父HTML是这样的: