如何使用javascript在弹出窗口中捕获事件?

时间:2014-01-07 17:27:15

标签: javascript jquery event-handling

我打开了一个外部网址作为弹出窗口。

var myWindow = window.open("http://google.com/","MsgWindow","width=500,height=600");

现在,我需要检查用户是否点击了搜索按钮。

我尝试选择使用jquery选择器,如

myWindow.$('#gbqfba').onClick(function(){
     alert('abc');
});

但是,它没有用。 :(你能帮帮我..

提前致谢。

3 个答案:

答案 0 :(得分:1)

这只有在两个页面位于同一个域下时才有效。

当您在stackoverflow.com时,这将在您的控制台上运行:

var myWindow = window.open("http://stackoverflow.com/","MsgWindow", "width=500","height=600");
$(myWindow).on('click', 'a', function() {alert('a')})

这不会:

var myWindow = window.open("http://google.com/","MsgWindow", "width=500","height=600");
$(myWindow).on('click', 'a', function() {alert('a')})

答案 1 :(得分:0)

为什么不能捕捉搜索按钮上的点击?

<button type="button" id="search">Search</button>

和你的jQuery

$("#search").click(function(){
    var myWindow = window.open("http://google.com/","MsgWindow","width=500,height=600");

});

答案 2 :(得分:0)

我认为你不能使用javascript来检测在不同窗口中发生的事件。 您可以尝试,而不是使用window.open(),将页面(在您的情况下为google.com)加载到灯箱形式的灯箱或类似的js插件中。

即使你这样做,浏览器也不会让你点击iframe里面的内容。您将无法准确检测用户点击的内容,但是一旦用户使用此脚本触发了点击事件,您就可以找到。

$('window').click( function(e){
    console.log('User Clicked outside the iframe');
});

$('window').blur( function(e){
    console.log('User clicked on the iframe or outside the page');
});​