Javascript ';卸载前';事件仅在我单击页面时在firefox中激发

Javascript ';卸载前';事件仅在我单击页面时在firefox中激发,javascript,jquery,html,firefox,iframe,Javascript,Jquery,Html,Firefox,Iframe,我使用window.open()打开一个新窗口 然后,当用户关闭打开的窗口时,我尝试运行一些脚本(ajax调用) 打开可以正常工作,但是当我尝试关闭窗口时,代码在FF中无法正常工作 这是我的密码 <?php echo '<div id="iframecontainer"><iframe name="meeting-iframe" frameborder="0" style="width:80%;height:80%" src="' . $link . '"><

我使用window.open()打开一个新窗口

然后,当用户关闭打开的窗口时,我尝试运行一些脚本(ajax调用)

打开可以正常工作,但是当我尝试关闭窗口时,代码在FF中无法正常工作

这是我的密码

<?php

echo '<div id="iframecontainer"><iframe name="meeting-iframe" frameborder="0" style="width:80%;height:80%" src="' . $link . '"></iframe></div>';


?>
<script>
(function ($) {

  $(document).ready(function() {


    // Variables from php
    var event_id = '<?php echo $event_id; ?>';
    var user_id = '<?php echo $current_user->uid; ?>';
    //////////////////////////////////////////////////////////////////////
    // Run function before window is closed,doesn't work as expected in FF
    window.addEventListener("beforeunload", function (e) {

      var e = e || window.event;
      var message = 'Are you sure you want to leave the meeting?';


      if(e) {
        e.returnValue = message;
      }


     // Post to get meeting info
      $.post('/easymeet/getInfo/' + event_id).done(function(meetResponse) {
        //ajax callback ,I have hidden the code here as I don't think its relevent to the question

      });
    });

  });
}(jQuery))

(函数($){
$(文档).ready(函数(){
//来自php的变量
var事件id=“”;
var user_id=“”;
//////////////////////////////////////////////////////////////////////
//在关闭窗口之前运行函数,在FF中未按预期工作
window.addEventListener(“预卸载前”,函数(e){
var e=e | | window.event;
var message='您确定要离开会议吗?';
如果(e){
e、 返回值=消息;
}
//发布以获取会议信息
$.post('/easymeet/getInfo/'+事件id).done(函数(meetResponse){
//ajax回调,我在这里隐藏了代码,因为我认为它与这个问题无关
});
});
});
}(jQuery)
我正在我的窗口中加载一个iframe,iframe获取的页面都是flash(只是要指出)

我正在测试IE、chrome和Firefox 这里发生的事情是在触发预卸载之前发生的,并且在IE和Chrome中运行良好


但是在Firefox中,我必须手动点击HTML或进行一些交互。如果我尝试不做任何操作就关闭窗口,“beforeunload”事件似乎根本不会触发。

Firefox有一些配置,您可以在导航工具栏中找到“about:config”。在那里,您会发现一些标志,包括dom。需要用户交互\u以便在卸载之前进行卸载,这使得仅当您单击页面时才会触发“卸载之前”事件。但您不能通过代码修改此配置;您必须在Firefox中手动执行此操作


PS:对不起我的英语。

有什么解决办法吗?@IonicăBizău你找到什么解决办法了吗?我在挠我的脖子hair@slier不,这只是Firefox的工作方式(除非您更改
about:config
——如下所述——您可能对此不感兴趣)。恐怕没有办法强迫你这么做。@IonicăBizău是的,我想是的..谢谢!