当点击类似facebook的按钮时,Javascript窗口会触发lur

Javascript window onblur firing when clicking facebook like button

本文关键字:窗口 Javascript lur 按钮 facebook      更新时间:2023-09-26

我有一个弹出窗口,显示一些内容和一个类似facebook的按钮。弹出窗口在window.onblur上关闭。不过,当我点击facebook按钮时,它会将其视为模糊事件,并在不喜欢的情况下关闭弹出窗口。我该怎么办?

这是我的脸书按钮代码按照脸书的指示(也有元数据在标题):

<div id="fb-root"></div>
<script>
(function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "http://connect.facebook.net/en_US/all.js#xfbml=1";
      fjs.parentNode.insertBefore(js, fjs);
    }
(document, 'script', 'facebook-jssdk'));
</script>
<div class="fb-like" data-href="http://www.google.com" data-send="false" data-width="450" data-show-faces="true" data-font="arial"></div>

和我最初的诱惑:

    <script> 
         setTimeout(setOnBlur,500);  
          function setOnBlur(){window.onblur = closeWin;}  
          function closeWin(e){window.close();}  
</script>

要么我做错了什么,点击facebookdiv标签会触发一个模糊事件,要么我怎么才能做到这一点?

Facebook like按钮通常被包装到iframe中。聚焦另一个iframe会使当前窗口模糊。AFAIR,有一种方法可以包含类似Facebook的按钮,而不是iframe。但我不记得是怎么做到的。

为了忽略某些iframe丢失的焦点(不确定,这将起作用)

window.onblur = function(e) {
    var t = e.target;
    if ((t.window == t) // this is a window
     && (t != window)) // but some other window
        return true;
    closeWin();
}

U需要检查一下-event.stopPropogation()

事件冒泡发生,您需要处理它。