如何检测弹出窗口关闭事件

时间:2015-07-20 10:10:51

标签: javascript facebook-graph-api

的javascript

document.querySelector('#share').onclick = function () {
    var popup = window.open('http://www.facebook.com/sharer/sharer.php?u=http://www.google.com', '', "width=400, height=400");

    popup.onbeforeunload = function() {
        alert('unload');
    }

    return false;
};

HTML

<a id="share" href="#">share</a>

两件事:

  1. 我想在用户完成facebook共享后做一些事情,如果我通过打开的窗口共享页面,窗口将在一切完成后自动关闭,所以我想使用beforeload事件来模仿after sharing callback,但弹出窗口关闭时我无法得到它。

  2. 如果用户只是关闭窗口或取消共享也会触发事件,所以它不是最好的解决方案,有没有facebook共享成功的回调API?

3 个答案:

答案 0 :(得分:11)

使用Tick

解决了这个问题
setInterval

答案 1 :(得分:1)

我为该功能制作了一个小javascript插件,没有相同域名的限制。

它有一些功能,比如能够用帖子和其他小东西打开弹出窗口。

希望找到答案的人发现它很有用。

https://github.com/enhancv/popup-tools

答案 2 :(得分:-1)

由于跨域调用,它无效。要获取卸载事件,您需要调用一个弹出窗口,它在iframe中有想要的URL。

document.querySelector('#share').onclick = function(){
    var popup = window.open('popup.html', '', "width=400, height=400");

    popup.onbeforeunload = function(){
        console.log('unload');
    }
};

popup.html

<iframe src = 'http://www.facebook.com/sharer/sharer.php?u=http://www.google.com'></iframe>