Javascript VueJS&;Laravel,当用户离开屏幕时发出post请求

Javascript VueJS&;Laravel,当用户离开屏幕时发出post请求,javascript,laravel,vue.js,Javascript,Laravel,Vue.js,请帮我一点忙 我需要检查输入是否已填写,然后如果用户离开屏幕进入选项卡或后退按钮等,则会发生post请求 sendSMS: function(e) { if(this.to) { this.$http.post('/demo/send', message) } } 当输入不为空时,如果用户离开站点区域屏幕,即向上进入选项卡或后退按钮,我需要说些什么,然后执行post请求。因此,不会按下任何按钮来提交此信息,而是检查输入是否已填写,以及

请帮我一点忙

我需要检查输入是否已填写,然后如果用户离开屏幕进入选项卡或后退按钮等,则会发生post请求

 sendSMS: function(e) {
        if(this.to) {
            this.$http.post('/demo/send', message)
        }
 }
当输入不为空时,如果用户离开站点区域屏幕,即向上进入选项卡或后退按钮,我需要说些什么,然后执行post请求。因此,不会按下任何按钮来提交此信息,而是检查输入是否已填写,以及用户是否离开屏幕


在我使用的上述方法中,如何使用VueJS实现这一点?

在页面关闭时运行js函数:

您需要在Vue中的ready函数中添加事件侦听器:

....
data:function(){
    return {sentRequest:false}
},
ready:function(){
    window.onbeforeunload = this.leaving;
    window.onblur = this.leaving;
    window.onmouseout = this.leaving;

},
methods:{
    leaving:function(){
        if(!this.sentRequest){
             //do stuff
             this.sentRequest = true;
        }
        return null;
    }
}
....

在页面关闭时运行js函数:

您需要在Vue中的ready函数中添加事件侦听器:

....
data:function(){
    return {sentRequest:false}
},
ready:function(){
    window.onbeforeunload = this.leaving;
    window.onblur = this.leaving;
    window.onmouseout = this.leaving;

},
methods:{
    leaving:function(){
        if(!this.sentRequest){
             //do stuff
             this.sentRequest = true;
        }
        return null;
    }
}
....

因此,在beforeonload函数中,检查离开屏幕的用户的函数,我是否应该将post请求放在那里?是的,该函数将在窗口关闭时运行。无法判断用户是否更改为另一个选项卡如果用户只是移动到显示站点的屏幕窗口上方,该怎么办?这仍然是一样的吗?我更新了我的答案。看起来有一种方法可以判断用户是否使用
window.onblur
离开选项卡。我不知道你所说的屏幕窗口上方的移动是什么意思。在beforeonload函数中,为
onmouseout
添加了一个以上的移动。因此,在beforeonload函数中,检查离开屏幕的用户,然后我是否应该将post请求放在那里?是的,该函数将在窗口关闭时运行。无法判断用户是否更改为另一个选项卡如果用户只是移动到显示站点的屏幕窗口上方,该怎么办?这仍然是一样的吗?我更新了我的答案。看起来有一种方法可以判断用户是否使用
window.onblur
离开选项卡。我不知道你所说的屏幕窗口上方的移动是什么意思为
onmouseout