成功调用ajax后如何执行JS函数?

时间:2016-01-23 22:32:51

标签: javascript jquery ajax callback fullscreen

我想全屏演示我的窗口。

我有一个工作功能,但我有一个问题:

我在用户点击UI中的某个按钮后发送一个AJAX调用,获取一些数据并做好准备,在此ajax调用之后(在success我要展示我的数据在全屏幕上,但我无法做到这一点,因为它引发了一个错误: Failed to execute 'requestFullScreen' on 'Element': API can only be initiated by a user gesture.

根据您的理解,我有用户操作 - 点击按钮,但这还不够,如果我'试图在ajax调用中执行fullscreen function

我也试图使用全局变量,有一个状态(我是否需要显示全屏或不显示(这取决于响应解析的结果(在AJAX调用之后)),但它也不起作用。我是这样想的:

ISFULLSCREEN = false;

function get_ajax() {
    ajax_call ()
    .success(response) {
        if (response.fullscreen) {
           ISFULLSCREEN = true;
        }
    }
 }


function useFullscreen() {
    if (ISFULLSCREEN) {
        use_fullscreen();
    }
}

我的按钮看起来像:

<button onclick="get_ajax();useFullscreen()" value="click me" />

但是功能useFullscreen运行得更快,而ISFULLSCREEN的值更改为true

有人知道如何解决这个问题吗?

非常感谢!

3 个答案:

答案 0 :(得分:1)

也许在你的ajax请求中,使用async: false使获取同步,从而将所有执行保持在同一事件中(来自用户点击)。

这样做的缺点是,如果需要很长时间,它可能会挂起页面

答案 1 :(得分:0)

这对你有帮助吗?:Run a website in fullscreen mode

答案基本上表示,如果没有用户互动,您无法强制进行全屏更改,但有一些替代建议

答案 2 :(得分:0)

为ajax调用添加async:false并在ajax成功时调用函数useFullscreen并从按钮onclick事件中删除它