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

标签 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 模仿共享回调后的事件,但是当弹出窗口关闭时我无法获取它。

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

最佳答案

使用setInterval解决了这个问题:

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");

    var popupTick = setInterval(function() {
      if (popup.closed) {
        clearInterval(popupTick);
        console.log('window closed!');
      }
    }, 500);

    return false;
};

关于javascript - 如何检测弹出窗口关闭事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31513828/

相关文章:

javascript - 如何在 typescript 中正确处理promisifyAll?

javascript - 如何使用 jQuery 通过浏览器制作重定向页面?

javascript - 即使看起来写得正确,该操作也是未定义或不可见的

facebook - Facebook 页面 "Like"和外部 URL "Like"有什么区别? "user_likes"权限范围是否可以访问两者?

javascript - Props 在我的 Vue.js 应用程序中不起作用

javascript - 在 InDesign [ExtendScript] 中选择、调整和分布文本框架

javascript - 在页面上找到img标签,创建og :image meta tag and append to head

javascript - Graph API 嵌套请求响应

Facebook C# sdk批量请求方法返回空数据数组

iPhone Facebook Graph API 库